Cod sursa(job #1545526)

Utilizator roxanastRoxana Stiuca roxanast Data 6 decembrie 2015 20:19:34
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <iostream>
using namespace std;
int a[10001],n,g,i,j,max1,PROFIT[10001];
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++)
        scanf("%d%d",&a[i],&PROFIT[i]);
    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&&p[j+a[i]]<p[j]+PROFIT[i])
            {fr[j+a[i]]=1;
            p[j+a[i]]=p[j]+PROFIT[i];}
        max1=max1+a[i];
    }
    max1=0;
    for(i=1;i<=g;i++)
        if(p[i]>max1)
        max1=p[i];
    gg<<max1;
    return 0;
}