Pagini recente » Cod sursa (job #702401) | Cod sursa (job #2212913) | Cod sursa (job #2151424) | Cod sursa (job #678812) | Cod sursa (job #1874858)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct obiect {int G, V, P;} v[5001];
int n, GMax, i, C;
void citire() {
f>>n>>GMax;
for(i = 1; i <= n; ++i) {
f>>v[i].G>>v[i].V;
v[i].P=v[i].V/v[i].G;
}
}
bool greater_value(obiect a, obiect b) {
return a.P > b.P;
}
void calcul_castig() {
for(i = 1; i <= n && GMax>0; ++i) {
if(v[i].G<=GMax) {
C+=v[i].V;
GMax-=v[i].G;
} else {
C+=v[i].P*GMax;
GMax=0;
}
}
}
int main()
{
citire();
sort(v+1, v+n+1, greater_value);
calcul_castig();
g<<C;
return 0;
}