Pagini recente » Cod sursa (job #2980796) | Cod sursa (job #438050) | Cod sursa (job #3190850) | Cod sursa (job #120403) | Cod sursa (job #2869586)
#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;
}