Cod sursa(job #831830)

Utilizator DenisONIcBanu Denis Andrei DenisONIc Data 9 decembrie 2012 12:31:46
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#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=v[i][2]-v[i][1];
	}
	for (i=1;i<n;i++)
		for (j=i+1;j<=n;j++)
		{
			if (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;
			}
			else if (v[i][2]==v[j][2] && v[i][1]>v[i][2])
			{
				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;
}