Pagini recente » Cod sursa (job #673446) | Cod sursa (job #1909687) | Cod sursa (job #191035) | Cod sursa (job #3234324) | Cod sursa (job #2492182)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
typedef pair<unsigned long long int,unsigned long long int> frati;
priority_queue<frati, vector<frati>, greater<frati> >citire;
priority_queue<frati> coada;
int ok;
unsigned long long int n,x,l,sum,d,val;
int main()
{
f>>n>>x>>l;
for(int l=1;l<=n;l++)
{
f>>d>>val;
citire.push(make_pair(d,val));
}
while(!citire.empty())
{
ok=1;
frati u=citire.top();
citire.pop();
coada.push(make_pair(u.second,u.first));
unsigned long long int calc=(x-u.first)/l;
while(ok&&!citire.empty())
{
u=citire.top();
unsigned long long int calc2=(x-u.first)/l;
if(calc2==calc)
{
citire.pop();
coada.push(make_pair(u.second,u.first));
}
else
ok=0;
}
u=coada.top();
coada.pop();
sum+=u.first;
}
g<<sum;
return 0;
}