Cod sursa(job #1371756)

Utilizator Vlad_317Vlad Panait Vlad_317 Data 4 martie 2015 01:24:27
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

#define MAXN 5000
#define MAXG 10000

int d[MAXN][MAXG];

struct obiecte
{
    int w,p;
}v[MAXN];

int main()
{
    FILE *fin,*fout;

    fin=fopen("rucsac.in","r");
    fout=fopen("rucsac.out","w");

    int n,g;

    fscanf(fin,"%d%d",&n,&g);

    for(int i=1;i<=n;i++)
        fscanf(fin,"%d%d",&v[i].w,&v[i].p);


    for(int i=1;i<=n;i++)
        for(int j=1;j<=g;j++)
    {
        d[i][j]=d[i-1][j];
        if(v[i].w<=j)
            d[i][j]=max(d[i][j],d[i-1][j-v[i].w]+v[i].p);
    }

    fprintf(fout,"%d",d[n][g]);


    return 0;
}