Pagini recente » Cod sursa (job #2917999) | Cod sursa (job #102107) | Cod sursa (job #2946993) | Cod sursa (job #1382739) | Cod sursa (job #2888691)
#include <bits/stdc++.h>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
int main()
{
long long N, T, S;
in >> N >> S >> T;
long long C[N + 1], P[N + 1];
for(int i = 1; i <= N; ++i)
in >> C[i] >> P[i];
long long ans = 0;
deque<int> D;
for(int i = 1; i <= N; ++i)
{
while(!D.empty() && D.front() + T < i)
D.pop_front();
while(!D.empty() && C[D.back()] + S * (i - D.back()) > C[i])
D.pop_back();
D.push_back(i);
ans += P[i] * (C[D.front()] + (i - D.front()) * S);
}
out << ans;
return 0;
}