Cod sursa(job #1261656)

Utilizator vladdy47Bucur Vlad Andrei vladdy47 Data 12 noiembrie 2014 16:55:31
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
using namespace std;
int Max,gr[10000],p[10000],n,g,i,s[20000],j;
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",&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];

}
Max=0;
for (i=1; i<=g; i++)
    if (s[i]>Max) Max=s[i];
printf("%d",Max);
return 0;

}