Cod sursa(job #1129831)

Utilizator RazvanStStatescu Razvan RazvanSt Data 28 februarie 2014 09:42:47
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;

int minim(int ruc[100][2], int n, int max, int &poz) {
    int min,i;
for(i=0;i<n;i++)
if(ruc[i][1]<max&&ruc[i][1]!=-1) {
min=ruc[i][1];
poz=i;
}
return min;
}

int main()
{
    ifstream a("rucsac.in");
    ofstream b("rucsac.out");
    int n,g,w,p,gr=0,max=0,min,pr=0,i,poz;
    a>>n>>g;

    int ruc[n][2];
    for(i=0;i<n;i++) {
    a>>w>>p;
    gr+=w;
    pr+=p;
    ruc[i][0]=w;
    ruc[i][1]=p;
    }
    for(i=0;i<n;i++)
    if(ruc[i][1]>max)
    max=ruc[i][1];

    while(gr>g) {
    min=minim(ruc, n, max, poz);
    minim(ruc, n, max, poz);
    gr-=ruc[poz][0];
    pr-=min;
    ruc[poz][1]=-1;
    }
    b<<pr;
    a.close();
    b.close();
    return 0;
}