Pagini recente » Cod sursa (job #1177323) | Cod sursa (job #2259204) | Cod sursa (job #1791990) | Cod sursa (job #1690549) | Cod sursa (job #2624456)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
deque<pair<int, int>> DK;
int main()
{
int n, S, T, pret, cantitate;
long long rez = 0;
fin >> n >> S >> T;
for(int i = 1; i <= n; i++)
{
fin >> pret >> cantitate;
while(!DK.empty() && DK.front().second < T - i)
DK.pop_front();
while(!DK.empty() && DK.back().first + (i - DK.back().second) * S >= pret)
DK.pop_back();
DK.push_back(make_pair(pret, i));
rez += long(DK.front().first + (i - DK.front().second) * S) * cantitate;
}
fout << rez;
return 0;
}