Cod sursa(job #1160628)

Utilizator alexmisto423Alex Turdean alexmisto423 Data 30 martie 2014 17:54:56
Problema Subsir crescator maximal Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
struct cell{int e,l,p;};
int j,n,a,b,i,maxi,rep;
cell v[100000];
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i].e;
        v[i].l=1;
    }
    maxi=1;

    for(i=n;i>0;i--)
    {
        for(j=i+1;j<=n-maxi+1;j++)
        {
            if(v[i].e<v[j].e)
            {
                if(1+v[j].l>v[i].l)
                {
                    v[i].l=1+v[j].l;
                    v[i].p=j;
                    if(v[i].l==maxi)
                        rep++;
                    if(v[i].l>maxi)
                        {
                            maxi=v[i].l;
                            rep=1;
                            a=i;
                        }
                }
                else
                    if(1+v[j].l==v[i].l&&v[i].l==maxi)
                        rep++;

            }
        }
    }
    fout<<maxi<<'\n';
    for(j=1;j<maxi;j++)
    {
        fout<<v[a].e<<" ";
        a=v[a].p;
    }
    fout<<v[a].e;
    return 0;
}