Pagini recente » Cod sursa (job #2131472) | Cod sursa (job #989030) | Cod sursa (job #869398) | Cod sursa (job #2130873) | Cod sursa (job #2708726)
#include <fstream>
using namespace std;
const int N = 1e5;
int cost[N], dq[N];
int main() {
ifstream in("branza.in");
ofstream out("branza.out");
int n, s, t, ct, st, dr;
long long tot = 0;
in >> n >> s >> t;
st = 0, dr = -1;
for (int i = 0; i < n; ++i) {
in >> cost[i] >> ct;
if (st <= dr && dq[st] == i - t)
++st;
while (st <= dr && cost[i] <= cost[dq[dr]] + s * (i - dq[dr]))
--dr;
dq[++dr] = i;
tot += (long long)ct * (cost[dq[st]] + s * (i - dq[st]));
}
out << tot;
in.close();
out.close();
return 0;
}