Pagini recente » Cod sursa (job #419870) | Cod sursa (job #2829340) | Cod sursa (job #2000609) | Cod sursa (job #129041) | Cod sursa (job #2583419)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
const int NM = 1e5;
int pret[NM];
int main()
{
int n, s, t;
fin >> n >> s >> t;
++t;
deque<int> d;
long long p = 0;
for (int i = 0; i < n; ++i) {
int c;
fin >> pret[i] >> c;
if (!d.empty() && d.back() == i - t)
d.pop_back();
while (!d.empty() && pret[d.front()] + (i - d.front()) * s >= pret[i])
d.pop_front();
d.push_front(i);
p += (long long)c * (pret[d.back()] + (long long)(i - d.back()) * s);
}
fout << p << '\n';
return 0;
}