Mai intai trebuie sa te autentifici.

Cod sursa(job #1277001)

Utilizator fluture.godlikeGafton Mihnea Alexandru fluture.godlike Data 27 noiembrie 2014 01:05:35
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
FILE *fin, *fout;
int n, g;
struct obiect
{
       int valoare;
       int greutate;
} *input;
int max(int a, int b)
{
    return (a>b)?a:b;
}
int val(int a, int b)
{
    if(!a || !b) return 0;
    if(input[a-1].greutate > b) return val(a-1, b);
    return max(val(a-1, b - input[a-1].greutate) + input[a-1].valoare, val(a-1, b));
}
int main()
{
    fin = fopen("rucsac.in", "r");
    fout = fopen("rucsac.out", "w");
    fscanf(fin, "%d%d", &n, &g);
    input = new obiect[n];
    for(int i =0; i< n; i++) fscanf(fin, "%d%d", &input[i].greutate, &input[i].valoare);
    fprintf(fout, "%d\n", val(n, g));
    fclose(fin);
    fclose(fout);
    return 0;
}