Pagini recente » Cod sursa (job #871834) | Cod sursa (job #213444) | Cod sursa (job #39092) | Cod sursa (job #2430107) | Cod sursa (job #2888449)
#include <fstream>
#include <deque>
using namespace std;
int main(){
ifstream f ("branza.in");
ofstream g("branza.out");
int N,S,T;
f>>N>>S>>T;
deque<pair<int,int>> deque;
int cost, cant, minim=0;
for(int i =0;i<N;i++){
f>>cost>>cant;
while(!deque.empty() && cost<= deque.back().second + S*(i - deque.back().first) )
deque.pop_back();
deque.push_back(make_pair(i,cost));
if(deque.front().first < i - T)
deque.pop_front();
minim += cant*(deque.front().second + S*(i-deque.front().first));
}
g<<minim;
}