Cod sursa(job #748199)
Utilizator | Denis Mita Kira96 | Data | 12 mai 2012 17:37:34 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include<stdio.h>
#define maxn 5001
#define maxg 10001
using namespace std;
int W[maxn],P[maxn],N,G,i,j,sol;
int O[maxg];
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",&W[i],&P[i]);
for(i=1;i<=N;++i)
for(j=G-W[i];j>=0;--j)
if(O[j+W[i]]<O[j]+P[i])
{
O[j+W[i]]=O[j]+P[i];
if(O[j+W[i]]>sol)
sol=O[j+W[i]];
}
printf("%d", sol);
return 0;
}