Cod sursa(job #1193538)

Utilizator ZenusTudor Costin Razvan Zenus Data 31 mai 2014 23:00:38
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
#include <vector>

using namespace std;

#define NMAX 10005
#define max(a,b) ((a>b) ? a : b)

int Cost[NMAX],N,G;
pair < int , int > O[NMAX];
int i,j,sol;

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",&O[i].first,&O[i].second);

for (i=1;i<=N;++i)
   for (j=G-O[i].first;j>=0;--j)
   {
       if (Cost[j+O[i].first]>=Cost[j]+O[i].second) continue;
       Cost[j+O[i].first]=Cost[j]+O[i].second;

       sol=max(sol,Cost[j+O[i].first]);
   }

printf("%d\n",sol);

return 0;
}