Pagini recente » Cod sursa (job #477518) | Monitorul de evaluare | Cod sursa (job #1405038) | Cod sursa (job #283490) | Cod sursa (job #2331207)
#include <cstdio>
using namespace std;
FILE *f,*g;
int l[100002],pred[100002],v[100002];
int n,imax=1;
void tipar(int poz)
{
if(poz)
{
tipar(pred[poz]);
fprintf(g,"%d ",v[poz]);
}
}
void dinamica()
{
l[1]=1;
for(int i=2;i<=n;++i)
{
l[i]=1;
for(int j=1;j<i;++j)
if(l[i]<l[j]+1 && v[i]>v[j])
l[i]=l[j]+1,pred[i]=j;
if(l[i]>l[imax])
imax=i;
}
}
int main()
{
f=fopen("scmax.in","r");
g=fopen("scmax.out","w");
fscanf(f,"%d",&n);
for(int i=1;i<=n;++i)
fscanf(f,"%d",&v[i]);
dinamica();
fprintf(g,"%d\n",l[imax]);
tipar(imax);
fclose(f);
fclose(g);
return 0;
}