Pagini recente » Istoria paginii runda/vanghelion-1 | Cod sursa (job #2541753) | Cod sursa (job #94943) | Istoria paginii runda/infinity-2022-6/clasament | Cod sursa (job #1000966)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, G;
struct
{
int w,p;
}v[5000],aux;
void citire()
{
int i;
fin>>n>>G;
for(i=1; i<=n; i++)
fin>>v[i].w>>v[i].p;
fin.close();
}
void ordo()
{
int i, ok;
do
{
ok=0;
for(i=1; i<=n-1; i++)
if((float)(v[i].p/v[i].w)>(float)(v[i+1].p/v[i+1].w))
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=1;
}
}
while(ok);
}
void Greedy()
{
int i,S=0;
ordo();
for(i=1; i<=n&&G>0; i++)
if(v[i].w<=G)
{
G=G-v[i].w;
S=S+v[i].p;
}
fout<<S;
fout.close();
}
int main()
{
citire();
Greedy();
return 0;
}