Cod sursa(job #1768114)

Utilizator PatrickAJPatrick Josephs PatrickAJ Data 30 septembrie 2016 11:02:27
Problema Problema rucsacului Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
int g[5001], p[5001];
int main()
{
    FILE *f1 = fopen("rucsac.in","r") , *f2 = fopen("rucsac.out","w");
    int n,profit = 0, greutate = 0,k,i,poz,min;
    fscanf(f1,"%d%d",&n,&k);
    for(i=0;i<n;i++){
        fscanf(f1,"%d%d",&g[i],&p[i]);
        greutate = greutate + g[i];
        profit = profit + p[i];
    }
    int test=0;
    while(greutate > k){
        test++;
        min = 10000000;
        for(i=0;i<n;i++){
            if(p[i] + g[i] < min){
                min = g[i] + p[i];
                poz = i;
            }
        }
        profit= profit-p[poz];
        p[poz]=0;
        greutate = greutate - g[poz];
    }
    fprintf(f2,"%d",profit);
    return 0;
}