Pagini recente » Cod sursa (job #1967633) | Cod sursa (job #2694085)
#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;
}