Pagini recente » Cod sursa (job #1293234) | Cod sursa (job #2785985) | Cod sursa (job #1913081) | Cod sursa (job #1210654) | Cod sursa (job #2889416)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int main()
{
long long n, s, t, i, pret_zilnic[100000] = {}, cantitate, cost_total = 0;
deque <long> dq;
fin>>n;
fin>>s;
fin>>t;
for(i = 1; i <= n; i++)
{
fin>>pret_zilnic[i]>>cantitate;
while(!dq.empty() && dq.front() < i - t)
dq.pop_front();
while(!dq.empty() && pret_zilnic[dq.back()] + (i - dq.back()) * s > pret_zilnic[i])
dq.pop_back();
dq.push_back(i);
cost_total = cost_total + (cantitate * (pret_zilnic[dq.front()] + (i - dq.front()) * s));
}
fout<<cost_total;
return 0;
}