Pagini recente » Cod sursa (job #478004) | Cod sursa (job #935682) | Cod sursa (job #2055526) | Cod sursa (job #1259278) | Cod sursa (job #2071075)
#include <fstream>
using namespace std;
struct punct
{
int g,p;
float profit;
}v[5002];
int n,i,j;
void sortare()
{
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(v[i].g<v[j].g)
{
v[0]=v[i];
v[i]=v[j];
v[j]=v[0];
}
else
{
if(v[i].g==v[j].g)
{
if(v[i].profit<v[j].profit)
{
v[0]=v[i];
v[i]=v[j];
v[j]=v[0];
}
}
}
}
}
}
int main()
{
int gr;
float castig;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
in>>n>>gr;
for(i=1;i<=n;i++)
{
in>>v[i].g>>v[i].p;
v[i].profit=v[i].p/(float)v[i].g;
}
sortare();
castig=0;
for(i=1;i<=n;i++)
{
if(v[i].g<=gr)
{
gr-=v[i].g;
castig+=v[i].p;
}
else
{
castig+=gr*v[i].profit;
gr=0;
}
if(gr==0)
break;
}
out<<castig;
return 0;
}