Cod sursa(job #925293)

Utilizator AeroHHorea Stefan AeroH Data 24 martie 2013 13:54:35
Problema Subsir 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
using namespace std;
FILE* fin= fopen("scmax.in","r");
FILE*fout=fopen("scmax.out","w");
unsigned int i,j,k,n,v[100002],p[100002],l[100002],lmax,poz;
int main()
{
    fscanf(fin,"%d",&n);
    for (i=1;i<=n;i++)
    fscanf(fin,"%d",&v[i]);

for (i=1;i<=n;i++)
l[i]=1;

    for(i=n-1;i>0;i--)
    for (j=i+1;j<=n;j++)
    if (v[j]>v[i]&&l[i]<l[j]+1)
    {l[i]=l[j]+1;
    if (l[i]>lmax)
    {lmax=l[i];
    poz=i;}
    p[i]=j;}
fprintf(fout,"%d\n",lmax);
    while (p[poz]!=0)
    {
        fprintf(fout,"%d ",v[poz]);
        poz=p[poz];
    }
fprintf(fout,"%d\n",v[poz]);



    return 0;
}