Cod sursa(job #2003931)

Utilizator Rodik_RodyRodica Vasilescu Rodik_Rody Data 24 iulie 2017 13:39:50
Problema Problema rucsacului Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 1.15 kb
#include <stdio.h>
#include <stdlib.h>
#define max(a,b) (a > b ? a : b)
#define min(a,b) (a < b? a : b)
#define MAX 10001
#define CAP_MAX 10001
int n, GT;
int castig[MAX], greutate[MAX];
int v[2][MAX];

void readInput (){
    int i;

    FILE *f= fopen("rucsac.in","r");

    ///printf("Numarul de obiecte: ");
    fscanf(f,"%d", &n);
   /// printf("Capacitatea rucsacului: ");
    fscanf(f,"%d", &GT);


    for (i = 1; i <= n; i++){
        ///printf("Greutate[%d] = ", i);
        fscanf(f,"%d", &greutate[i]);
        ///printf("Castig[%d] = ", i);
        fscanf(f,"%d", &castig[i]);

    }
}
int main()
{
    readInput();
        int i, j, k;
    FILE *g= fopen("rucsac.out","w");
    for ( i = 0; i <= GT; i++)
        v[0][i] = 0;

    for ( i = 1; i <= n; i++){
        for ( j = 1; j <= GT; j++){
            if ( greutate[i] <= j )
                 v[1][j]= max(v[0][j],v[0][j - greutate[i]]+ castig[i]);
        }


        for ( k = 1; k <= GT; k++){
            //fprintf(g,"%d ", v[1][k]);
            v[0][k]=v[1][k];
        }
       // fprintf(g,"\n");
    }

    fprintf(g,"%d", v[1][GT]);
    return 0;
}