Cod sursa(job #2002330)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 19 iulie 2017 14:08:13
Problema Euro Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

#define MIN -(1LL<<62)
#define DIM 34600

using namespace std;

ifstream fin("euro.in");
ofstream fout("euro.out");

int n,t,tail=1; long long d[DIM],sum[DIM],s,a,ind[DIM];

void citire()
{
    fin >> n >> t;
    int i;
    for(i=1;i<=n;i++)
    {
        fin >> a;
        sum[i]=sum[i-1]+a;
        if(s<0)
        {
            s=0;
            tail++;
        }
        s+=a;
        ind[tail]=i;
    }
}
void rezolv()
{
    int i,j;
    for(i=1;i<=tail;i++)
    {
        d[i]=MIN;
        for(j=0;j<=i and j*j<4*t;j++)
            d[i]=max(d[i] , ind[i]*(sum[ind[i]]-sum[ind[i-j]])-t+d[i-j]);
    }
    fout << d[tail];
}
int main()
{
    citire(); rezolv();
    return 0;
}