Pagini recente » Cod sursa (job #658057) | Cod sursa (job #2449608) | Cod sursa (job #3235217) | Cod sursa (job #2814694) | Cod sursa (job #2888862)
#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[10000] = {}, 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() && cost[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;
}