Pagini recente » Cod sursa (job #2504800) | Cod sursa (job #1455553) | Cod sursa (job #513143) | Cod sursa (job #3161607) | Cod sursa (job #1905628)
#include <fstream>
#include <iomanip>
#include <math.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct obiect
{
int g;
float v;
int indice;
};
struct obiect o[100];
int main()
{
int n,i,j,poz,y;
int G,S=0,V=0;
float x;
fin>>n>>G;
for (i=1;i<=n;i++)
{fin>>o[i].g;
fin>>x;
o[i].v=x/o[i].g;
o[i].indice=i;}
for(i=1;i<n;i++)
{
poz=i; x=o[i].v;y=o[i].g;
for(j=i;j<=n;j++)
if((o[j].v>x)||((o[j].v==x)&&(o[j].g>y)))
{
x=o[j].v;
y=o[j].g;
poz=j;
}
swap(o[i],o[poz]);
}
for(i=1;i<=n;i++)
if(S+o[i].g<G)
{
S+=o[i].g;
V+=ceil(o[i].g*o[i].v);
}
else
{ poz=i;
i=n+n;}
fout<<V;
return 0;
}