Cod sursa(job #1362192)

Utilizator mihaivasilacheMIhai Vasilache mihaivasilache Data 26 februarie 2015 10:54:41
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
using namespace std;
ofstream fout("scmax.out");
int n,v[100001],maxi[100001],i,pre[100001],j,maxi1,pozmax;
void afis(int i)
{
    if(i)
    {
        afis(pre[i]);
        fout<<v[i]<<" ";
    }
}
int main()
{
    FILE*fin;
    fin=fopen("scmax.in","r");
    fscanf(fin,"%d",&n);
    for(i=1;i<=n;i++)
    {
        fscanf(fin,"%d",&v[i]);
        maxi[i]=1;
    }
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++)
        {
            if(v[i]<v[j]&&maxi[i]<maxi[j]+1)
            {
                maxi[j]=maxi[i]+1;
                pre[j]=i;
                if(maxi1<maxi[j])
                {
                    maxi1=maxi[j];
                    pozmax=j;
                }
            }
        }
    fout<<maxi1<<'\n';
    i=pozmax;
    afis(i);
    return 0;
}