Pagini recente » Cod sursa (job #1816784) | Cod sursa (job #1439982) | Cod sursa (job #2626751) | Cod sursa (job #2585014) | Cod sursa (job #2292421)
#include <bits/stdc++.h>
using namespace std;
struct oaie
{
int dist,lana;
};
int N,X,L,sol;
oaie T[100003];
priority_queue<int>q;
inline bool CMP(const oaie A, const oaie B)
{
return A.dist < B.dist;
}
void Citire()
{
int i;
oaie w;
ifstream fin("lupu.in");
fin>>N>>X>>L;
for(i=1;i<=N;++i)
{
fin>>w.dist>>w.lana;
T[i] = w;
}
fin.close();
}
void Solutie()
{
int i,st,dr;
st = 0;
dr = (N+1)%L - 1;
if(st>dr)
dr+=L;
sol=0;
bool flag;
for(i=1;i<=N && dr<=X;)
{
flag = false;
while(st<=T[i].dist && T[i].dist<=dr)///le pun pe toate din acest interval in coada
{
flag = true;
q.push(T[i].lana);
i++;
}
if(!flag)
i++;
///cout<<q.top()<<"\n";
if(!q.empty())
{
sol+=(q.top());
q.pop();
}
st=dr+1;
dr+=L;
}
}
void Afisare()
{
ofstream fout("lupu.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
sort(T+1,T+N+1,CMP);
Solutie();
Afisare();
return 0;
}