Pagini recente » Cod sursa (job #387218) | Cod sursa (job #200570) | Cod sursa (job #2004033) | Cod sursa (job #2009385) | Cod sursa (job #2754533)
#include <iostream>
using namespace std;
struct hot
{int g,val;float r;};
void citire(hot v[],int &n,int &G)
{
int i;
cin>>n>>G;
for(i=1;i<=n;i++)
{
cin>>v[i].g>>v[i].val;
v[i].r=(float)v[i].val/v[i].g;
}
}
void ordo(hot v[],int n)
{
int i,ok;
do
{
ok=0;
for(i=1;i<=n;i++)
{
if(v[i].r<v[i+1].r)
{
v[0]=v[i];
v[i]=v[i+1];
v[i+1]=v[0];
ok=1;
}
}
}while(ok==1);
}
void gridi(hot v[],int n,int G)
{
int i;float VAL=0;
for(i=1;i<=n&&G>0;i++)
{
if(v[i].g<=G)
{
G-=v[i].g;
VAL+=v[i].val;
}
else
{
VAL+=G*v[i].r;
G=0;
}
}
cout<<VAL;
}
int main()
{
int n,G;hot v[1001];
citire(v,n,G);
ordo(v,n);
gridi(v,n,G);
return 0;
}