Cod sursa(job #1703562)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 17 mai 2016 09:54:53
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <cstdio>

using namespace std;
int v[100001],t[100001],l[100001];
FILE *fin=fopen ("scmax.in","r");
FILE *fout=fopen ("scmax.out","w");
void sol (int pmax){
    if (pmax!=0){
        sol (t[pmax]);
        fprintf (fout,"%d ",v[pmax]);
    }
}
int main()
{
    int n,i,maxim,pmax,j,maxi,poz;
    fscanf (fin,"%d",&n);
    for (i=1;i<=n;i++)
        fscanf (fin,"%d",&v[i]);
    maxim=0;
    pmax=0;
    for (i=1;i<=n;i++){
        maxi=0;
        for (j=1;j<i;j++){
            if (v[i]>v[j] && l[j]>maxi){
                maxi=l[j];
                poz=j;
            }
        }
        if (maxi!=0){
            l[i]=1+maxi;
            t[i]=poz;
        }
        else l[i]=1+maxi;
        if (l[i]>maxim){
            maxim=l[i];
            pmax=i;
        }
    }
    fprintf (fout,"%d\n",maxim);
    sol (pmax);
    return 0;
}