Pagini recente » Cod sursa (job #61107) | Cod sursa (job #924301) | Cod sursa (job #2447472) | Cod sursa (job #2638301) | Cod sursa (job #2665610)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int o[100],N,M;
float val[100],greu[100],x[100],Gr;
void citeste()
{
int i;
f>>N>>M;
for (i=0;i<N;++i)
{
o[i]=i;
f>>val[i]>>greu[i];
}
f.close();
}
void sort()
{
int i,aux,schimb;
do
{
schimb=0;
for (i=0;i<N-1;++i)
if (val[o[i]]/greu[o[i]]<val[o[i+1]]/greu[o[i+1]])
{
aux=o[i];
o[i]=o[i+1];
o[i+1]=aux;
schimb=1;
}
}
while (schimb);
}
void rezolva()
{
int i;
for (i=0,Gr=M;i<N && Gr>greu[o[i]];++i)
{
x[o[i]]=1;
Gr-=greu[o[i]];
}
}
void afisare()
{
int i;
for (i=0;i<N;++i)
if (x[i]) g<<i+1<<" "<<x[i]*100<<endl;
g.close();
}
int main()
{
citeste();
sort();
rezolva();
afisare();
return 0;
}