Cod sursa(job #2634504)

Utilizator betybety bety bety Data 11 iulie 2020 11:39:11
Problema Euro Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.54 kb

#include <fstream>

using namespace std;

ifstream f("euro.in");

ofstream g("euro.out");

int n, m, i, t, j, l[5<<13], q[5<<13], s[5<<13], v[5<<13];

long long dp[5<<13];

int main(){

  f>>n>>t;

  for(i=m=1; i<=n; ++i){

    f>>v[i];

    s[i]=s[i-1]+v[i];

    m+=(q[m]<0);

    q[m]+=v[i];

    l[m]=i;

  }

  for(i=1; i<=m; ++i){

    dp[i]=-(1LL<<60);

    for(j=i; j>=0 && (i-j)*(i-j)<=t+1000; --j)

      dp[i]=max(dp[i], dp[j]+1LL*(s[l[i]]-s[l[j]])*l[i]-t);

  }

  g<<dp[m];

  return 0;

}