Pagini recente » Cod sursa (job #382353) | Cod sursa (job #1545066) | Cod sursa (job #934441) | Cod sursa (job #569791) | Cod sursa (job #2971144)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
struct obj{
double v,g,m;
}v[1001];
int n,gmax,gt;
int sol;
bool compare(obj a, obj b)
{
return a.m>b.m;
}
int main()
{
cin>>n>>gmax;
for(int i=1;i<=n;i++)
{
cin>>v[i].g>>v[i].v;
v[i].m=v[i].v/v[i].g;
}
sort(v+1,v+1+n,compare);
for(int i=1;i<=n;i++)
{
if(v[i].g+gt<=gmax)
{
gt+=v[i].g;
sol+=v[i].v;
}
else
{
sol+=(v[i].m*(gmax-gt));
gt=gmax;
break;
}
}
cout<<sol;
return 0;
}