Pagini recente » Cod sursa (job #1294505) | Cod sursa (job #81926) | Cod sursa (job #2703911) | Cod sursa (job #3217280) | Cod sursa (job #831832)
Cod sursa(job #831832)
#include <stdio.h>
FILE *f=fopen("rucsac.in","r");
FILE *g=fopen("rucsac.out","w");
long ef[5001],v[5001][3],n,aux,nr,i,j,gr;
int main()
{
fscanf(f,"%ld%ld",&n,&gr);
for (i=1;i<=n;i++)
{
fscanf(f,"%ld%ld",&v[i][1],&v[i][2]);
ef[i]=v[i][2]-v[i][1];
}
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
{
if (ef[i]<ef[j])
{
aux=ef[i];
ef[i]=ef[i];
ef[j]=aux;
aux=v[i][1];
v[i][1]=v[j][1];
v[j][1]=aux;
aux=v[i][2];
v[i][2]=v[j][2];
v[j][2]=aux;
}
else if (ef[i]==ef[j] && v[i][2]<v[j][2])
{
aux=ef[i];
ef[i]=ef[i];
ef[j]=aux;
aux=v[i][1];
v[i][1]=v[j][1];
v[j][1]=aux;
aux=v[i][2];
v[i][2]=v[j][2];
v[j][2]=aux;
}
}
for (i=1;i<=n;i++)
if (v[i][1]<=gr)
{
gr=gr-v[i][1];
nr=nr+v[i][2];
}
fprintf(g,"%ld",nr);
fclose(f);
return 0;
}