Cod sursa(job #1265672)

Utilizator danstefanDamian Dan Stefan danstefan Data 17 noiembrie 2014 16:17:31
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#include <fstream>
using namespace std;
int ma,gr[10000],p[10000],n,g,i,s[20000],j;
int main ()
{freopen("rucsac.in","r",stdin);
ofstream go ("rucsac.out");
scanf("%d%d",&n,&g);
for (i=1; i<=n; i++)
    scanf("%d%d",&gr[i],&p[i]);
for (i=1; i<=g; i++) s[i]=0;
s[0]=0;
for (i=1; i<=n; i++) {
    for (j=g; j>=0; j--)
        if (s[j]!=-1 && s[j+gr[i]]==-1) s[j+gr[i]]=p[i];
            else if (s[j]!=-1 && s[j+gr[i]]<p[i]+s[j]) s[j+gr[i]]=s[j]+p[i];

}
ma=0;
for (i=1; i<=g; i++)
    if (s[i]>ma) ma=s[i];
go<<ma;
return 0;

}