Pagini recente » Cod sursa (job #2667384) | Cod sursa (job #1987895) | Cod sursa (job #2263256) | Cod sursa (job #2562274) | Cod sursa (job #1281502)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream p("rucsac.out");
int a[100],N,M;
float v[100],g[100],x[100],Gr;
void citeste()
{
int i;
f>>N>>M;
for (i=0;i<N;++i)
{
a[i]=i;
f>>v[i]>>g[i];
}
f.close();
}
void sortare()
{
int i,aux,schimb;
do
{
schimb=0;
for (i=0;i<N-1;++i)
if (v[a[i]]/g[a[i]]<v[a[i+1]]/g[a[i+1]])
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
schimb=1;
}
}
while (schimb);
}
void rezolva()
{
int i;
for (i=0,Gr=M;i<N && Gr>g[a[i]];++i)
{
x[a[i]]=1;
Gr-=g[a[i]];
}
}
void afisare()
{
int i;
for (i=0;i<N;++i)
if (x[i]) p<<i+1<<" "<<x[i]*100<<endl;
p.close();
}
int main()
{
citeste();
sortare();
rezolva();
afisare();
return 0;
}