Pagini recente » Rating Olariu Sebastian (lordseban) | Cod sursa (job #487436)
Cod sursa(job #487436)
#include <cstdio>
using namespace std;
struct gen{
int e;// energie;
int c;// cantitate;
double r;// raport e/c;
}a[1005],aux;
int g;
int v;
int cost=0;
int energie=0;
void sortare()
{
int ok=1;
int n=g;
while(ok == 1)
{
ok = 0;
for(int i=0;i<n-1;i++)
if(a[i].r<a[i+1].r)
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
ok = 1;
}
n--;
}
}
void citire()
{
scanf("%d",&g);
scanf("%d",&v);
for(int i=0;i<g;i++)
{
scanf("%d %d",&a[i].e,&a[i].c);
a[i].r= (double)a[i].e / (double)a[i].c;
}
}
void ceva()
{
sortare();
for(int i=0;i<g;i++)
{
energie+=a[i].e;
cost+=a[i].c;
if(energie>= v )
break;
}
if(energie >= v)
printf("%d",cost);
else
printf("-1");
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
citire();
ceva();
return 0;
}