Pagini recente » Statistici necula antonie (tonynecula) | Statistici Spaghetti Monster (spaghettimonster) | Diferente pentru utilizator/dornescuvlad intre reviziile 29 si 102 | Istoria paginii utilizator/stefy555 | Cod sursa (job #2001520)
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream d("rucsac.out");
int i,n,man1,inv, ordine[1100];
double a[1100],g[1100],ef[1100],gv,man,c;
int main()
{
f>>n>>gv;
for(i=1;i<=n;i++)
{
f>>g[i]>>a[i];
ordine[i]=i;
ef[i]=a[i]/g[i];
}
do
{
inv=0;
for(i=1;i<=n-1;i++)
if(ef[i]<ef[i+1])
{
man=ef[i];
ef[i]=ef[i+1];
ef[i+1]=man;
man=a[i];
a[i]=a[i+1];
a[i+1]=man;
man=g[i];
g[i]=g[i+1];
g[i+1]=man;
inv=1;
man1=ordine[i];
ordine[i]=ordine[i+1];
ordine[i+1]=man1;
}
}
while(inv);
i=1;
while(gv>0&&i<=n)
{
if(gv>g[i])
{
gv-=g[i];
c=c+a[i];
}
else
{
c+=a[i]*gv/g[i];
gv=0;
}
i++;
}
d<<c;
return 0;
}