Pagini recente » Cod sursa (job #1966911) | Cod sursa (job #1456655) | Cod sursa (job #391406) | Cod sursa (job #107361) | Cod sursa (job #1522062)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int i,pret;
vector<pair<int,int> > hip;
bool c(pair<int,int> a,pair<int,int> b)
{
if (a.first+(i-a.second)*pret>b.first+(i-b.second)*pret)
{
return true;
}
else
{
return false;
}
}
int main()
{
ifstream in("branza.in");
ofstream out("branza.out");
int zile,expira,p=0,acum,cerere;
in>>zile;
in>>pret;
in>>expira;
for (i=1;i<=zile;i++)
{
in>>acum;
in>>cerere;
hip.push_back(make_pair(acum,i));
push_heap(hip.begin(),hip.end(),c);
while (i-hip[0].second>expira)
{
pop_heap(hip.begin(),hip.end(),c);
hip.pop_back();
}
p+=cerere*(hip[0].first+(i-hip[0].second)*pret);
}
out<<p;
}