Pagini recente » Cod sursa (job #2845999) | Cod sursa (job #1985458) | Cod sursa (job #1833497) | Cod sursa (job #9160) | Cod sursa (job #1000962)
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n;
float G;
struct
{
float g,v;
int ind;
}v[100],aux;
void cit()
{
int i;
f>>n>>G;
for(i=1;i<=n;i++)
{
f>>v[i].g>>v[i].v;
v[i].ind=i;
}
f.close();
}
void ordo()
{
int i,ok;
do
{
ok=0;
for(i=1;i<n;i++)
if(v[i].v/v[i].g<v[i+1].v/v[i+1].g)
{
ok=1;
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
}
}
while(ok);
}
void greedy()
{
int i,a[100],k=1;
float s=0;
ordo();
for(i=1;i<=n&&G>0;i++)
if(v[i].g<=G)
{
G-=v[i].g;
s+=v[i].v;
a[k++]=v[i].ind;
}
g<<s<<"\n";
for(i=1;i<=k;i++)
g<<a[i]<<" ";
g.close();
}
int main()
{
cit();
greedy();
return 0;
}