Pagini recente » Cod sursa (job #1652725) | Cod sursa (job #1587765) | Cod sursa (job #2961485) | Istoria paginii runda/eusebiu_oji_2011_cls11-12 | Cod sursa (job #1522063)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
long long i,pret;
vector<pair<long long,long long> > hip;
bool c(pair<long long,long long> a,pair<long long,long long> 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");
long long 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;
}