Cod sursa(job #2694085)

Utilizator asbiancaBianca Gabriela Asavoaei asbianca Data 7 ianuarie 2021 23:33:38
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>

using namespace std;

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


struct rucsac
{
    int g, pr; /// greutate si profit

} R[5005];

long long G, n, P; /// P e profitul la care ajunge

void Citire()
{
    int i;
    fin >> n >> G;
    for(i=1; i<=n; i++)
        fin >> R[i].g >> R[i].pr;
}

void Sortare() // descrescator dupa profit
{
    rucsac aux;
    int i, ordo=0;
    while(ordo==0)
    {
        ordo=1;
        for(i=1; i<=n-1; i++)
            if(R[i].pr < R[i+1].pr)
            {
                aux=R[i];
                R[i]=R[i+1];
                R[i+1]=aux;
                ordo=0;
            }
    }
}
void  Greedy()
{
    int i;
    for(i=1; i<=n; i++)
        if(R[i].g <= G)
        {
            P=P+R[i].pr;
            G=G-R[i].g;
        }
    fout << P;
}

int main()
{
    Citire();
    Sortare();
    Greedy();
    return 0;
}