Cod sursa(job #2869586)

Utilizator Seress26Seres Artur Seress26 Data 11 martie 2022 17:47:13
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define NMAX 10001
///RUCSAC
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n;
int G,Furt;
struct hot
{
    int w;
    int p;
}U[NMAX];
bool Compara2(hot w, hot p)
{
    return w.w < p.w;
}
bool Compara1(hot w, hot p)
{
    return  w.p > p.p;
}
void Citire()
{
    f>>n;
    f>>G;
    for(int i=1;i<=n;i++)
    {
        f>>U[i].w;
        f>>U[i].p;
    }
    sort(U+1,U+n+1,Compara2);
    sort(U+1,U+n+1,Compara1);
}
void Rezolvare()
{
    int ok=0,i=1;
    while(G>=U[i].w)
    {
        G=G-U[i].w;
        Furt=Furt+U[i].p;
        i++;
    }
    g<<Furt;
}
void Afisare()
{
    for(int i=1;i<=n;i++)
        cout<<U[i].w<<' '<<U[i].p<<'\n';
}
int main()
{
    Citire();
    Rezolvare();
    Afisare();

    return 0;
}