Cod sursa(job #2178024)
Utilizator | Dabelea Ioana-Viviana ivddab | Data | 18 martie 2018 23:46:24 |
---|---|---|---|
Problema | Euro | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream>
#define NM 34569
using namespace std;
ifstream f("euro.in");
ofstream g("euro.out");
long long n,t,i,j,m;
long long v[NM],s[NM],q[NM],l[NM],dp[NM];
int main()
{
f>>n>>t; m=1;
for(i=1;i<=n;++i){
f>>v[i];
s[i]=s[i-1]+v[i];
if(q[m]<0) m++;
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]+((s[l[i]]-s[l[j]])*l[i]-t));
}
g<<dp[m]<<'\n';
return 0;
}