Cod sursa(job #1540004)

Utilizator roxanastRoxana Stiuca roxanast Data 1 decembrie 2015 21:55:14
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;
int a[5001],n,g,i,j,max1;
long long p[10001];
char fr[10001];
ofstream gg("rucsac.out");
int main()
{
    freopen("rucsac.in","r",stdin);
    scanf("%d%d",&n,&g);
    for(i=1;i<=n;i++){
        int pp;
        scanf("%d%d",&a[i],&pp);
        p[a[i]]=pp;
    }
    int max1=0;
    fr[0]=1;
    for(i=1;i<=n;i++)
    for(j=max1;j>=0;j--){
        if(fr[j]==1&&j+a[i]<=g)
            {fr[j+a[i]]=1;
            p[j+a[i]]=p[j]+p[a[i]];}
        max1=max1+a[i];
    }
    max1=0;
    for(i=1;i<=g;i++)
        if(p[i]>max1)
        max1=p[i];
    gg<<max1;
    return 0;
}