Cod sursa(job #1768056)

Utilizator dinurosca03Rosca Dinu Cristian dinurosca03 Data 30 septembrie 2016 09:18:34
Problema Problema rucsacului Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.47 kb
#include<stdio.h>
#define max(u,v) u>v?u:v;
int P[10001];
int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    int N,G,g,p,i,j,x;
    scanf("%d%d",&N,&G);
    for(i=1;i<=G;i++)
        P[i]=-50000001;
    for(x=N;x>0;x--)
    {
        scanf("%d%d",&g,&p);
        for(i=G,j=G-g;j>=0;i--,j--)
            P[i]=max(P[i],P[j]+p);
    }
    for(i=1,p=0;i<=G;i++)
        p=max(p,P[i]);
    printf("%d\n",p);
    return 0;
}