Cod sursa(job #1174586)

Utilizator lauratalaatlaura talaat lauratalaat Data 23 aprilie 2014 15:02:06
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
int d[10001];
struct bine { int greu ; int profit ;};
bine v[5001];
int main(){
int n,g,i,j,maxim;
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d%d",&n,&g);
    for(i=1;i<=n;i++)
        scanf("%d%d",&v[i].greu,&v[i].profit);
    for(i=2;i<=n;i++)
        d[i]=-1;
    for(i=1;i<=n;i++)
        for(j=g-v[i].greu;j>=0;j--)
           if(d[j+v[i].greu]<d[j]+v[i].profit)
               d[j+v[i].greu]=d[j]+v[i].profit;
    maxim=0;
    for(i=1;i<=g;i++)
        if(d[i]>maxim)
            maxim=d[i];
    printf("%d\n",maxim);
    return 0;
}