Pagini recente » Cod sursa (job #2474601) | Cod sursa (job #1915435) | Cod sursa (job #1386017) | Cod sursa (job #1468934) | Cod sursa (job #960383)
Cod sursa(job #960383)
#include<fstream>
#include<deque>
using namespace std;
struct zi{
int pret, pos;
};
deque<zi> br;
int main(){
ifstream in("branza.in");
ofstream out("branza.out");
int n,s,t,cost=0,req; zi current;
in>>n>>s>>t;
for(int i=1; i<=n; i++){
in>>current.pret>>req;
current.pos=i;
while(!br.empty()&&br.back().pret+s*(i-br.back().pos)>current.pret){
br.pop_back();
}
while(!br.empty()&&i-br.front().pos>t){
br.pop_front();
}
br.push_back(current);
cost+=(br.front().pret+s*(i-br.front().pos))*req;
}
out<<cost<<"\n";
return 0;
}