Cod sursa(job #1131630)

Utilizator meriniucrMeriniuc Razvan- Dumitru meriniucr Data 28 februarie 2014 22:34:14
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;

int r[2][100001];

int main()
{
    ifstream mama("scmax.in");
    ofstream tata("scmax.out");

    int n,x[100001],maxim[100001],i,m=1,nr=1,j,k,l,ok;

    mama>>n;
    mama>>x[1];
    r[0][1]=1; r[1][1]=1; maxim[1]=1;
    for(i=2;i<=n;i++)
    {
        mama>>x[i];  l=0;
        for(j=i-1;j>=1;j--)
            if(x[i]>x[j] and l < r[1][j] and maxim[r[0][j]]==r[1][j])
                {
                    l=r[1][j];
                    k=j;
                }
        if(l==0) {r[0][i]=nr+1; ;nr++; maxim[nr]=1; r[1][i]=1;}
            else {r[0][i]=r[0][k]; maxim[r[0][k]]++;r[1][i]=r[1][k]+1;}
        if(r[1][i]>m) {m=r[1][i]; ok=i;}

    }
    tata<<m<<'\n';
    for(i=1;i<=n;i++)
        if(r[0][i]==r[0][ok]) tata<<x[i]<<" ";
    return 0;
}