Cod sursa(job #2213109)
Utilizator | Data | 15 iunie 2018 17:09:12 | |
---|---|---|---|
Problema | Branza | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.31 kb |
#include <fstream>
#define N 5000000
int d[N],v[N];main(){std::ifstream fin("branza.in");std::ofstream fout("branza.out");long long n,s,p,t,st=0,dr=-1,S=0,i;fin>>n>>s>>t;for(i=0;i<n;++i){fin>>v[i]>>p;if(d[st]==i-t-1)++st;while(st<=dr&&v[i]<=v[d[dr]]+(i-d[dr])*s)--dr;d[++dr]=i;S+=p*(v[d[st]]+(i-d[st])*s);}fout<<S;}