Pagini recente » Cod sursa (job #1621416) | Cod sursa (job #217959) | Cod sursa (job #2138236) | Cod sursa (job #2596047) | Cod sursa (job #2908004)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N, G;
struct obj {
int W, P;
}O[100000];
int main()
{
fin >> N >> G;
for (int i = 1; i <= N; i++) {
fin >> O[i].W >> O[i].P;
}
for (int i = 1; i < N; i++) {
for (int j = i + 1; j <= N; j++) {
if (O[i].P < O[j].P)
swap(O[i], O[j]);
}
}
int i = 1, sum = 0, max_sum = 0;
while (sum <= G) {
max_sum += O[i].P;
sum += O[i].W;
i++;
}
if (sum > G)
max_sum = max_sum - O[i-1].P;
fout <<max_sum;
return 0;
}