Cod sursa(job #1099137)
Utilizator | Data | 5 februarie 2014 16:31:56 | |
---|---|---|---|
Problema | Energii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
#include <iostream>
using namespace std;
int C[1002][5002],eg[1002],cg[1002],i,j,n,w;
int main()
{
FILE *f,*g;
f=fopen("energii.in","r");
g=fopen("energii.out","w");
fscanf(f,"%d%d",&n,&w);
for (i=1; i<=n; i++) fscanf(f,"%d%d",&eg[i],&cg[i]);
for(i=1; i<=n; i++)
for(j=1; j<=w; j++)
if (eg[i]>j) C[i][j]=C[i-1][j];
else C[i][j]=max(cg[i]+C[i-1][j-eg[i]],C[i-1][j]);
fprintf(g,"%d\n",C[n][w]);
return 0;
}