Pagini recente » Cod sursa (job #758300) | Cod sursa (job #2015055) | Cod sursa (job #2793071) | Cod sursa (job #2063676) | Cod sursa (job #1006744)
#include <fstream>
using namespace std;
typedef struct {int g,val,ind;} OBIECT;
OBIECT v[100],aux;
int n,G;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
void citire()
{
int i;
f>>n>>G;
for(i=1;i<=n;i++)
{
f>>v[i].g>>v[i].val;
v[i].ind=i;
}
f.close();
}
void ordo()
{
int ok,i;
do
{
ok=0;
for(i=1;i<n;i++)
if((float)v[i].val/v[i].g<(float)v[i+1].val/v[i+1].g)
{
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].g<=G)
{
G=G-v[i].g;
S=S+v[i].val;
}
g<<S;
g.close();
}
int main()
{
citire();
greedy();
return 0;
}