Pagini recente » Cod sursa (job #203003) | Cod sursa (job #2856051) | Cod sursa (job #129078) | Cod sursa (job #1462277) | Cod sursa (job #3127506)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
deque< pair<long,int> > b;
long N,S,T,C,P,c;
int main()
{
fin>>N>>S>>T;
fin>>C>>P;
b.push_back({C,0});
c= c+P*b[0].first;
for(long i = 1; i < N; i++)
{
fin>>C>>P;
if (b.front().second + T < i)
b.pop_front();
while(!b.empty() && (S * (i - b.back().second) + b.back().first) >= C)
{
b.pop_back();
}
b.push_back({C, i});
c = c + P * b.front().first + S*P*(i-b.front().second);
}
fout<<c;
fin.close();
fout.close();
return 0;
}