Cod sursa(job #1782481)

Utilizator nnnmmmcioltan alex nnnmmm Data 18 octombrie 2016 10:12:10
Problema Problema rucsacului Scor 0
Compilator c Status done
Runda cerculdeinfo-lectia3-programaredinamica1 Marime 0.68 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("rucsac1.in","r");
 FILE *fout=fopen("rucsac1.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);
fclose(fin);
fclose(fout);
return 0;
}