Cod sursa(job #949605)

Utilizator Barcau_EmanuelBarcau Emanuel Barcau_Emanuel Data 14 mai 2013 12:48:17
Problema Subsir 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
#define modulo 9901;
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
long int a[10005],k,l[10005],x[10005],n,pozm,i,max1,poz,sol,sum,summ;

int main ()
{
    f>>n;
    for(i=1;i<=n;i++)
    f>>a[i];

    l[n]=x[n]=1;

    for(k=n;k>=1;k--)
    {
        max1=0;
        poz=0;
        sum=a[k];
        for(i=k+1;i<=n;i++)
        if(a[i]>a[k]&&l[i]>max1)
        {
            max1=l[i];
            sum+=a[i];
        }

        for(i=k+1;i<=n;i++)
        if(a[i]>a[k]&&l[i]==max1)
        {
            poz=poz+x[i];
            x[i]%=modulo;
        }
        if(sum>summ) {summ=sum; pozm=k;}
        l[k]=1+max1;
        if(poz==0) x[k]=1;
        else x[k]=poz;
    }
     for(i=1;i<=n;i++)
     if(max1<l[i])
      max1=l[i];
     for(i=1;i<=n;i++)
     if(max1==l[i])
     {sol=sol+x[i];
     sol=sol%modulo;}
     //g<<max1<<"\n";
     //g<<summ;

     g<<l[pozm-1];
     return 0;
}