Pagini recente » Cod sursa (job #3140435) | Cod sursa (job #1613967) | Cod sursa (job #1397354) | Cod sursa (job #2837911) | Cod sursa (job #2560663)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g;
vector <pair<int, int> > V;
bool compara(const pair<int, int> &P1, const pair<int, int> &P2)
{
return (P1.second > P2.second);
}
void Citire();
int main()
{
Citire();
sort(V.begin(), V.end(), compara);
int rezultat = 0;
int tmp = 0;
unsigned int i = 0;
while (tmp + V[i].first <= g && i < V.size())
{
rezultat += V[i].second;
tmp += V[i].first;
++i;
}
fout << rezultat;
}
void Citire()
{
fin >> n >> g;
int w, p;
while (fin >> w >> p)
{
V.push_back(make_pair(w, p));
}
}