Cod sursa(job #2634504)
Utilizator | bety 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;
}