Cod sursa(job #1122674)
| Utilizator | Data | 25 februarie 2014 19:47:37 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <cstdio>
#define mx 5002
#define mg 10001
using namespace std;
int g,i,j,k,sum,l,n,t[mx],p[mx],v[mg];
int maxim(int a, int b)
{return a > b ? a : b;}
int main()
{freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d %d",&n,&g);
for(i=1;i<=n;i++)
scanf("%d %d",&t[i],&p[i]);
for(i=1;i<=n;i++)
for(j=g;j>=t[i];j--){
v[j]=maxim(v[j],v[j-t[i]]+p[i]);
if (v[j]>sum) sum=v[j];
}
printf("%d",sum);
return 0;
}
