Cod sursa(job #267617)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 27 februarie 2009 19:11:10
Problema Euro Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
# include <stdio.h>

const long int MAXN=34567;

long int n,t,v[MAXN+1],sum[MAXN+1]; long long best[MAXN+1];

void citire()
{
     FILE *f=fopen("euro.in","r");
     fscanf(f,"%ld %ld",&n,&t);
     long int i;
     for (i=1;i<=n;i++)
         {
         fscanf(f,"%ld",&v[i]);
         sum[i]=sum[i-1]+v[i];
         }
     fclose(f);
}

void calc()
{
     best[1]=v[1]-t;
     long int i,j;
     for (i=2;i<=n;i++)
         {
         best[i]=best[i-1]+v[i]*i-t;
         for (j=0;j<=i-1;j++)
             best[i]=best[i]>best[j]+(sum[i]-sum[j])*i-t ? best[i] : best[j]+(sum[i]-sum[j])*i-t;
         }
}

void scrie()
{
     FILE *g=fopen("euro.out","w");
     fprintf(g,"%lld\n",best[n]);
     fclose(g);
}

int main()
{
    citire();
    calc();
    scrie();
    return 0;
}