Cod sursa(job #2596352)

Utilizator alex_benescuAlex Ben alex_benescu Data 9 aprilie 2020 17:11:27
Problema Euro Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.49 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;
}