Pagini recente » Cod sursa (job #2392921) | Cod sursa (job #348604) | Cod sursa (job #350667) | Cod sursa (job #2123853) | Cod sursa (job #2481061)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int n, g, k;
pair <int, int> a[5001];
bool sortare(pair <int, int> x, pair <int, int> y)
{
double xx=1.0*x.first/x.second,yy=1.0*y.first/y.second;
return xx < yy;
}
int parcurgere(int g, pair <int, int> a[])
{
int i = a[1].first;
int r = a[1].second;
int c = 1;
while (i < g)
{
c++;
i += a[c].first;
if (i <= g) r += a[c].second;
}
return r;
}
int main()
{
fin >> n >> g;
for (int i=1; i<=n; i++)
fin >> a[i].first >> a[i].second;
sort(a+1, a+n+1, sortare);
for (int i=1; i<=n; i++)
fout << a[i].first << ' ' << a[i].second << '\n';
fout << parcurgere(g, a);
return 0;
}
/// 1 ≤ N ≤ 5000
/// 1 ≤ G ≤ 10000
/// 0 ≤ Wi, Pi ≤ 10000
/// sort(v+1,v+n+1,greater<int>())
/*
1 2 4 5 6
3 7 | 3 4 | 1 9 | 2 4 | 1 5
*/