Pagini recente » Cod sursa (job #125901) | Cod sursa (job #3123047) | Cod sursa (job #1480259) | Cod sursa (job #2376789) | Cod sursa (job #2821737)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("lupu.in");
ofstream g ("lupu.out");
int n;
struct oitza{
int val;
int timp;
int parte;
bool operator < (const oitza &A) const{
return A.val>val;
}
};
int l;
oitza a[100005];
int x;
priority_queue <oitza> Q;
int cmp(oitza A , oitza B)
{
return A.timp>B.timp;
}
int main()
{
f>>n>>x>>l;
int oimaxim=x/l+1;
for(int i=1;i<=n;++i)
{
int prim , secund;
f>>secund>>prim;
a[i].val=prim;
a[i].timp=secund;
a[i].parte=secund/l+1;
}
sort(a+1 , a+n+1 , cmp);
for(int i=1;i<=n;++i)
{
cout<<a[i].timp<<" "<<a[i].parte<<" "<<a[i].val<<"\n";
}
Q.push(a[1]);
for(int i=2;i<=n;++i)
{
if(a[i].parte<a[i-1].parte)
Q.push(a[i]);
else if(a[i].val>Q.top().val)
{
Q.pop();
Q.push(a[i]);
}
}
int nr=0;
int cont=0;
while(!Q.empty())
{
nr+=Q.top().val;
Q.pop();
++cont;
}
cout<<cont;
g<<nr;
return 0;
}