Pagini recente » Cod sursa (job #729863) | Cod sursa (job #510023) | Cod sursa (job #2432169) | Cod sursa (job #31562) | Cod sursa (job #229308)
Cod sursa(job #229308)
#include <stdio.h>
#include <stdlib.h>
unsigned long v[100000],rmax[100000],s,x,n,l,ln,d;
long r[100000],j,i;
int ok;
int main()
{
FILE *f;
s=0;
f=fopen("lupu.in","r");
fscanf(f,"%lu%lu%lu",&n,&x,&l);
for(i=0;i<n;i++)
{
fscanf(f,"%lu%lu",&d,&v[i]);
rmax[i]=(x-d)/l;
}
d=x/l;
for(i=0;i<=d;i++)
r[i]=i;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(v[j]>v[i])
{
ln=v[i];
v[i]=v[j];
v[j]=ln;
ln=rmax[i];
rmax[i]=rmax[j];
rmax[j]=ln;
}
for(i=0;i<n;i++)
{
ok=0;
j=rmax[i];
while(j>=0 && !ok)
if(r[j]!=-1)
ok=1;
else
j--;
if (ok)
{
s+=v[i];
r[j]=-1;
}
}
fclose(f);
f=fopen("lupu.out","w");
fprintf(f,"%lu",s);
fclose(f);
return 0;
}