Pagini recente » Cod sursa (job #1323888) | Cod sursa (job #2823623) | Cod sursa (job #707641) | Cod sursa (job #3000310) | Cod sursa (job #2405144)
#include <fstream>
#include <deque>
#define val first
#define poz second
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
deque < pair <int, int> > deq;
long long n, pretdep, zilemax, pret, cant, i, sol;
int main()
{
f>>n>>pretdep>>zilemax;
for( i=1; i<=n; i++){
f >> pret >> cant;
if(deq.empty()==false && deq.front().poz==i-zilemax-1) deq.pop_front() ;
while ( deq.empty()==false && deq.front().val + pretdep >= pret) deq.pop_front();
if(deq.empty()==true)deq.push_front (make_pair (pret, i));
if(deq.front().poz!=i) deq.front().val+=pretdep;
sol+=cant*deq.front().val;
}
g<<sol;
return 0;
}