Cod sursa(job #1782482)

Utilizator nnnmmmcioltan alex nnnmmm Data 18 octombrie 2016 10:13:09
Problema Problema rucsacului Scor 100
Compilator c Status done
Runda cerculdeinfo-lectia3-programaredinamica1 Marime 0.67 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;
}