Pagini recente » Monitorul de evaluare | Cod sursa (job #1708301) | Borderou de evaluare (job #1219206) | Cod sursa (job #1316498) | Cod sursa (job #2405100)
#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) deq.pop_front() ;
while ( deq.empty()==false && deq.front().val + pretdep*(i-deq.front().poz) >= pret) deq.pop_front();
if(deq.empty()==true)deq.push_front (make_pair (pret, i));
sol+=cant*deq.front().val+cant*pretdep*(i-deq.front().poz);
}
g<<sol;
return 0;
}