Pagini recente » Cod sursa (job #3032143) | Cod sursa (job #465597) | Cod sursa (job #761261) | Cod sursa (job #497352) | Cod sursa (job #2888451)
#include <fstream>
#include <deque>
using namespace std;
int main(){
ifstream f ("branza.in");
ofstream g("branza.out");
long long N,S,T;
f>>N>>S>>T;
deque<pair<long long,long long>> deque;
long long 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;
}