Cod sursa(job #1067074)

Utilizator nnnmmmcioltan alex nnnmmm Data 26 decembrie 2013 11:45:02
Problema Problema rucsacului Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.63 kb
#include<string.h>
#include<stdio.h>
#define maxn 5001
#define maxg 10001
int greutate[maxn],profit[maxn],opt[maxg];
int i,j,n,g,sol;
int main()
{
 FILE *fin=fopen("rucsac.in","r");
 FILE *fout=fopen("rucsac.out","w");
 fscanf(fin,"%d %d",&n,&g);
 for(i=1;i<=n;i++)
     {
	 fscanf(fin,"%d %d",&greutate[i],&profit[i]);
     }
 opt[0]=0;
 for(i=1;i<=n;i++)
	for(j=g-greutate[i];j>=0;j--)
	    {
		if(opt[j+greutate[i]]<opt[j]+profit[i])
             {
		    opt[j+greutate[i]]=opt[j]+profit[i];
		    if(opt[j+greutate[i]]>sol)
			  sol=opt[j+greutate[i]];
             }
         }
 fprintf(fout,"%d",sol);
return 0;
}