Pagini recente » Cod sursa (job #2180718) | Cod sursa (job #465566) | Cod sursa (job #1152924) | Cod sursa (job #3184791) | Cod sursa (job #1340892)
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream d("rucsac.out");
int a[3][5001],n,g;
int main()
{ int i,j,s=0;
f>>n>>g;
float b[n+1],a1,a2,m=0,aux,c1;
for(i=1;i<=n;i++)
{f>>a[1][i];
f>>a[2][i];}
for(i=1;i<=n;i++)
{
a1=(float)(a[1][i]);
a2=(float)(a[2][i]);
b[i]=a2/a1;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(b[i]>b[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
aux=a[1][i];
a[1][i]=a[1][j];
a[1][j]=aux;
aux=a[2][i];
a[2][i]=a[2][j];
a[2][j]=aux;
}
}
for(i=1;i<=n;i++)
{
if(g-a[1][i])
{
g=g-a[1][i];
s=s+a[2][i];
}
if(g==0)
{
d<<s;
return 0;
}
if(g-a[1][i]<0)
{
//a2=(float)a[1][i];
c1=g;
s=s+(b[i]/c1);
}
}
d<<s;
return 0;
}