Cod sursa(job #1774620)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 9 octombrie 2016 10:55:39
Problema Problema rucsacului Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#include <stdlib.h>
FILE *in,*out;
int r[10001],w[5001],p[5001];
int main()
{
    in = fopen("rucsac.in","r");
    out = fopen("rucsac.out","w");
    int n,g,i,j,max = 0;
    fscanf(in,"%d %d\n",&n,&g);
    for(i = 1; i <= n; i ++)
        fscanf(in,"%d %d\n",&w[i],&p[i]);
    r[0] = 1;
    for(i = 1; i <= n; i ++)
    {
        for(j = max; j >= 0; j --)
        {
            if(r[j] != 0 && r[j] <= g)
            {
                r[p[i] + j] = r[j] + w[i];
                if(p[i] + j > max)
                max = p[i] + j;
            }

        }
    }
    fprintf(out,"%d\n",max);
    return 0;
}