Pagini recente » Cod sursa (job #2759433) | Cod sursa (job #2568619) | Cod sursa (job #2942467) | Cod sursa (job #2065108) | Cod sursa (job #1130490)
#include <iostream>
#include <fstream>
using namespace std;
int minim(int ruc[100][2], int n, int min, int &poz) {
int i;
for(i=0;i<n;i++)
if(ruc[i][1]<min&&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];
min=max;
while(gr>g) {
min=minim(ruc, n, min, poz);
minim(ruc, n, min, poz);
gr-=ruc[poz][0];
pr-=min;
ruc[poz][1]=-1;
}
b<<pr;
a.close();
b.close();
return 0;
}