Cod sursa(job #2026909)

Utilizator calinfloreaCalin Florea calinflorea Data 25 septembrie 2017 12:29:20
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

struct DB
{
    int x, y;
};

DB a[5005];
int n, g, gr, s;
void Citire()
{
    int i;

    fin >> n >> g;

    for(i = 1; i <= n; i++)
        fin >> a[i].x >> a[i].y;
}

inline bool Compar(const DB A, const DB B)
{
    if(A.x > B.x)
        return A.x > B.x;
    else if(A.x == B.x)
        return A.y > B.y;
    return A.x > B.x;
}

void Rezolva()
{
    int i;

    sort(a + 1, a + n + 1, Compar);

    for(i = 1; i <= n && gr < g; i++)
    {
        s += a[i].y;
        gr += a[i].x;
    }

    fout << s << "\n";
}
int main()
{
    Citire();
    Rezolva();
    return 0;
}