Pagini recente » Cod sursa (job #2535706) | Cod sursa (job #1189553) | Cod sursa (job #1361620) | Cod sursa (job #843763) | Cod sursa (job #1184852)
#include <iostream>
#include <fstream>
#include <algorithm>
#define nmax 100001
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
struct dep { int timp,cost;};
int N,X,L;
long sol;
dep A[nmax];
bool cmp(dep A, dep B)
{
if (A.timp == B.timp )
{
if (A.cost > B.cost ) return A.cost > B.cost;
}
return (A.timp < B.timp);
}
int main()
{
f >> N >> X >> L;
for (int i=0;i<N;i++)
{
int d,c;
f >> d >> A[i].cost;
A[i].timp = ((X - d) / L) + 1 ;
}
sort (A,A+N,cmp);
/* for (int i=0;i<N;i++)
cout << A[i].timp << ' ';
cout << '\n';
for (int i=0;i<N;i++)
cout << A[i].cost << ' ';*/
int k = A[0].timp;
sol += A[0].cost;
for (int i=1;i<N;i++)
{
if (A[i].timp != k) {sol += A[i].cost; k = A[i].timp; }
}
g << sol;
return 0;
}