Pagini recente » Cod sursa (job #594273) | Cod sursa (job #2585777) | Cod sursa (job #2807818) | Cod sursa (job #3184454) | Cod sursa (job #1104215)
#include<cstdio>
using namespace std;
int L[100002],poz[100002]={-1},a[100001],n,maxim=0,pozitie;
FILE *f,*g;
void init()
{
L[n]=1;
poz[n]=-1;
}
void citire()
{
f=fopen("scmax.in","r");
g=fopen("scmax.out","w");
int i;
fscanf(f,"%d",&n);
for(i=1; i<=n; i++)
fscanf(f,"%d",&a[i]);
}
void scmax()
{
int i,j,max;
for(i=n-1; i>=1; i--)
{
max=0;
for(j=i+1; j<=n; j++)
{
if(a[i]<a[j] && max<L[j])
{
max=L[j];
poz[i]=j;
}
}
L[i]=max+1;
if(L[i]>maxim)
{
maxim=L[i];
pozitie=i;
}
}
}
void afis()
{
fprintf(g,"%d\n",maxim);
while(poz[pozitie]!=-1)
{
fprintf(g,"%d ",a[pozitie]);
pozitie=poz[pozitie];
}
fprintf(g,"%d",a[pozitie]);
}
int main()
{
citire();
init();
scmax();
afis();
}