Pagini recente » Cod sursa (job #1052235) | Cod sursa (job #1421502) | Cod sursa (job #1381726) | Cod sursa (job #1503943) | Cod sursa (job #2863598)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("lupu.in");
ofstream out ("lupu.out");
pair <long long, long long> v[100001];
bool t[100001];
bool sortbypair (pair <long long , long long> a, pair <long long ,long long> b)
{
if(a.first>b.first)
return true;
else if(a.first == b.first)
{
if(a.second<b.second)
return true;
else
return false;
}
else
return false;
}
int main()
{
int n;
long long x,l,q,j=1,i,s=0,maxtime=0;
in>>n>>x>>l;
for(i=1;i<=n;i++)
{
in>>q;
if(n-q>0)
{
v[j].second=(x-q)/l+1;
in>>v[j].first;
if(v[j].second>maxtime)
maxtime=v[j].second;
j++;
}
else
in>>q;
}
n=j-1;
sort(v+1,v+n+1,sortbypair);
for(i=1;i<=n;i++)
for(j=v[i].second;j>=1;j--)
if(t[j]==0)
{
s+=v[i].first;
t[j]=1;
break;
}
out<<s;
return 0;
}