Pagini recente » Cod sursa (job #143723) | Cod sursa (job #320474) | Cod sursa (job #869250) | Cod sursa (job #1172386) | Cod sursa (job #960385)
Cod sursa(job #960385)
#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;
}