Cod sursa(job #516986)
Utilizator | Petru Trimbitas S7012MY | Data | 27 decembrie 2010 14:14:30 |
---|---|---|---|
Problema | Branza | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream>
#include <deque>
#define DN 1000005
#define sz d.size()
#define fr d.front()
#define bk d.back()
#define LL long long
using namespace std;
deque<LL> d;
LL n,s,t,c[DN],p[DN], r;
int main()
{
ifstream f("branza.in");
ofstream g("branza.out");
f>>n>>s>>t;
for(int i=1; i<=n; ++i) {
f>>c[i]>>p[i];
if(sz && i-fr>t) d.pop_front();
for (;sz && c[bk]+(i-bk)*s>=c[i]; d.pop_back());
d.push_back(i);
r+=((c[fr]+(i-fr)*s)*p[i]);
}
g<<r;
return 0;
}