Cod sursa(job #2481061)

Utilizator danalex032003Dan Alexandru danalex032003 Data 26 octombrie 2019 13:23:36
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#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
*/