Cod sursa(job #1099134)
| Utilizator | Data | 5 februarie 2014 16:27:59 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <iostream>
#include <cstdio>
using namespace std;
int c[1002][5002];
int main()
{ int n,a[1002],b[1002],w,i,j;
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",&a[i],&b[i]);
for(i=1;i<=n;i++)
for(j=1;j<=w;j++)
if(a[i]>j) c[i][j]=c[i-1][j];
else c[i][j]=max(b[i]+c[i-1][j-a[i]],c[i-1][j]);
fprintf(g,"%d\n",c[n][w]);
return 0;
}
