Pagini recente » Cod sursa (job #1395700) | Cod sursa (job #155154) | Cod sursa (job #848206) | Cod sursa (job #316431) | Cod sursa (job #853249)
Cod sursa(job #853249)
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int w[5001],p[5001],i,n,G,aux,ok,j;
float s1,s;
int main()
{
f>>n>>G;
for(i=1;i<=n;i++)
f>>w[i]>>p[i];
do
{
ok=1;
for(i=1;i<n;i++)
if((float)p[i]/w[i]<(float)p[i+1]/w[i+1]) {aux=p[i];
p[i]=p[i+1];
p[i+1]=aux;
aux=w[i];
w[i]=w[i+1];
w[i+1]=aux;
ok=0;}
}while(ok==0);
//for(i=1;i<=n;i++)
//g<<w[i]<<" "<<p[i]<<endl;
s=0; s1=0;
for(i=1;i<=n;i++) {s=s+w[i]; s1=s1+p[i];
if(s>G) break;}
if(i>=n+1) g<<s1<<" ";
else
s1=s1-p[i]; s=s-w[i]; s1=s1+(G-s)*p[i]/w[i];
g<<(int)s1<<" ";
f.close();
g.close();
return 0;
}