Cod sursa(job #1691205)

Utilizator Daria09Florea Daria Daria09 Data 17 aprilie 2016 13:16:54
Problema Euro Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include <fstream>
#define MIN -(1LL<<62)
#define DIM 34600
using namespace std;
ifstream f("euro.in");
ofstream g("euro.out");
int n,t,tail=1; long long d[DIM],sum[DIM],s,a,ind[DIM];
void read()
{
    f>>n>>t; int i;
    for(i=1;i<=n;i++)
    {
        f>>a; sum[i]=sum[i-1]+a;
        if(s<0){s=0; tail++;}
        s+=a; ind[tail]=i;
    }
    f.close();
}
void solve()
{
    int i,j;
    for(i=1;i<=tail;i++)
        {d[i]=MIN; for(j=0;j<=i&&j*j<4*t;j++)d[i]=max(d[i],ind[i]*(sum[ind[i]]-sum[ind[i-j]])-t+d[i-j]);}
    g<<d[tail];
}
int main()
{
    read(); solve();
    return 0;
}