Pagini recente » Cod sursa (job #734878) | Cod sursa (job #318149) | Cod sursa (job #468796) | Cod sursa (job #3000471) | Cod sursa (job #229378)
Cod sursa(job #229378)
#include <stdio.h>
#define dim 100000
long n, x, l, c[dim+1], d[dim+1], init, s=0;
char fol[dim+1]={0};
void quicksort (long *a, long *b, long lo, long hi)
{
long i=lo, j=hi, h;
long x=a[(lo+hi)/2];
do
{
while (a[i]>x) i++;
while (a[j]<x) j--;
if (i<=j)
{
h=a[i]; a[i]=a[j]; a[j]=h;
h=b[i]; b[i]=b[j]; b[j]=h;
i++; j--;
}
} while (i<=j);
if (lo<j) quicksort(a, b, lo, j);
if (i<hi) quicksort(a, b, i, hi);
}
int main()
{
long i;
freopen("lupu.in", "r", stdin);
freopen("lupu.out", "w", stdout);
scanf("%ld %ld %ld\n", &n, &x, &l);
for (i=1; i<=n; i++) scanf("%ld %ld\n", &d[i], &c[i]);
quicksort(c, d, 1, n);
init=0;
while (init<n)
{
i=1;
while (fol[i]==1) i++;
s+=c[i];
fol[i]=1;
init++;
for (i=1; i<=n; i++)
if (fol[i]==0)
{
d[i]+=l;
if (d[i]>x)
{
init++;
fol[i]=1;
}
}
}
printf("%ld\n", s);
return 0;
}