Pagini recente » Cod sursa (job #1222191) | Cod sursa (job #1392782) | Cod sursa (job #1547913) | Cod sursa (job #581945) | Cod sursa (job #1814801)
#include <iostream>
#include <fstream>
using namespace std;
ofstream g("scmax.out");
ifstream f("scmax.in");
long long n,v[100001],x[100001],l[100001],maxim,poz;
void citire()
{ f>>n; for(int i=1;i<=n;i++) {f>>v[i]; x[i]=i;} l[n]=1; }
void afisare()
{ for(int i=1;i<=n;i++) g<<v[i]<<" "<<x[i]<<" "<<l[i]<<endl; g<<endl; }
void lung()
{ int i,ma,j;
for(i=n-1;i>0;i--)
{ ma=0;
for(j=i+1;j<=n;j++)
if(l[j]>ma&&v[j]>v[i]) ma=l[j];
l[i]=ma+1; if(l[i]>maxim) {maxim=l[i]; poz=i;}
}}
void afisaresubsir()
{ int i,j=poz; g<<maxim<<endl;
for(i=poz;i<=n;i++)
if(l[i]==maxim&&v[i]>=v[j])
{ g<<v[i]<<" "; j=i; maxim--;}}
int main()
{ citire(); lung(); afisaresubsir();
return 0;}