Pagini recente » Cod sursa (job #2405562) | Cod sursa (job #2399024) | Cod sursa (job #641211) | Cod sursa (job #2181621) | Cod sursa (job #1707197)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
int N,G,n[10000],g[10000],f,S;
double val[10000];
int main()
{
fi>>N>>G;
for(int i=1;i<=N;i++) {
fi>>g[i]>>n[i];
val[i]=(n[i]*1.0)/(g[i]*1.0);
}
for(int i=1;i<=N;i++) for(int j=i;j<=N;j++) {
if(val[i]<val[j]){
swap(val[i],val[j]);
swap(n[i],n[j]);
swap(g[i],g[j]);
}
}
//for(int i=1;i<=N;i++) fo<<val[i]<<" "<<n[i]<<" "<<g[i]<<endl;
while(G!=0){
f++;
if(G-g[f]>=0) {
S+=n[f];
G-=g[f];
}
else {
S+=(G)*val[f];
G=0;
}
}
fo<<S;
}