Cod sursa(job #949603)

Utilizator andreipopa97Popa Andrei andreipopa97 Data 14 mai 2013 12:39:22
Problema Subsir 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.65 kb
#include<fstream>
#define dim 1003

using namespace std;

ifstream f("subsiruri.in");
ofstream g("subsiruri.out");

long n,maxim,sol;
long v[dim],l[dim],c[dim],x,poz;

void citire()
{
        int i;
        f>>n;
        for(i=1;i<=n;i++)
                f>>v[i];
}

void rezolva()
{
        int i,j,k;
        l[n]=1;
        c[n]=1;
        for(k=n;k>=1;k--)
        {
                maxim=0;
                poz=0;
                for(i=k+1;i<=n;i++)
                        if(v[i]>v[k]&&l[i]>maxim)
                                maxim=l[i];

                for(j=k+1;j<=n;j++)
                if(v[j]>v[k]&&maxim==l[j])
                        {
                        poz=poz+c[j];

                        }
                        l[k]=1+maxim;
                        if(poz==0)
                                c[k]=1;
                        else
                                c[k]=poz;
        }
        for(i=1;i<=n;i++)
                if(maxim<l[i])

                        maxim=l[i];

                for(i=1;i<=n;i++)
                        if(maxim==l[i])
                        {
                                sol=sol+c[i];
                        }
                        //g<<sol;

                g<<maxim<<"\n";
                /*for(i=1;i<=n;i++)
                g<<v[i]<<" ";
                g<<"\n";
                for(i=1;i<=n;i++)
                g<<l[i]<<" ";
                g<<"\n";
                for(i=1;i<=n;i++)
                g<<c[i]<<" ";*/
               // g<<solg<<solg<<solg<<solg<<sol;
}

int main()
{
        citire();
        rezolva();
        return 0;
}