Pagini recente » Diferente pentru algoritmiada-2016/runda-2/juniori intre reviziile 2 si 3 | Istoria paginii utilizator/alexradu | Rezultatele filtrării | Borderou de evaluare (job #1119343) | Cod sursa (job #516983)
Cod sursa(job #516983)
#include <fstream>
#include <deque>
#define DN 1000005
#define sz d.size()
#define fr d.front()
#define bk d.back()
using namespace std;
deque<int> d;
int 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;
}