Pagini recente » Cod sursa (job #1739008) | Cod sursa (job #964827) | Cod sursa (job #2284884) | Cod sursa (job #2570953) | Cod sursa (job #2321772)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
int n;
f>>n;
int v[100000],t[100000];
for(int i=1;i<=n;i++)
f>>v[i];
int d[100000];
for(int i=1;i<=n;i++)
{
t[i]=0;
d[i]=0;
}
d[1]=1;
for(int i=2;i<=n;i++)
{
int maxx=1;
for(int j=i-1;j>=1;j--)
{
if(d[j]+1>=maxx)
{
if(v[j]<v[i])
{
maxx=d[j]+1;
t[i]=j;
}
}
}
d[i]=maxx;
}
int maxx=-1,pmax;
for(int i=n;i>=1;i--)
if(d[i]>maxx)
{
maxx=d[i];
pmax=i;
}
int k=0,i=n;
int sol[100000];
g<<maxx<<endl;
while(t[pmax]!=0)
{
sol[k++]=v[pmax];
pmax=t[pmax];
}
sol[k++]=v[pmax];
for(int i=k-1;i>=0;i--)
g<<sol[i]<<" ";
cout << "Hello world!" << endl;
return 0;
}