Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/nick_lozovanu | Istoria paginii utilizator/andreisandu | Istoria paginii utilizator/moonrose | Cod sursa (job #2003984)
//#include <iostream>
#include <fstream>
#include <algorithm>
#include <iomanip>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
struct func
{
int greutate,pret;
}v[10005];
bool mysort(func a,func b)
{
if(a.greutate*b.pret<=b.greutate*a.pret)
{
return true;
}
return false;
}
int main()
{
int n,i,s,g;
double fin=0.0;
cin>>g>>n;
for(i=1;i<=n;i++)
cin>>v[i].greutate>>v[i].pret;
sort(v+1,v+n+1,mysort);
for(i=1;i<=n;i++)
cout<<v[i].greutate<<" "<<endl;
int pos=1;
cout<<setprecision(10);
cout<<fixed;
cout<<setprecision(4);
while(g>0 and pos!=n+1)
{
if(v[pos].greutate<=g)
{
cout<<v[pos].greutate<<" "<<v[pos].pret<<" 1"<<endl;
g-=v[pos].greutate;
}
else
{
cout<<v[pos].greutate<<" "<<v[pos].pret<<" "<<float(g/float(v[pos].greutate));
g-=v[pos].greutate;
}
pos++;
}
return 0;
}