Pagini recente » Cod sursa (job #1881586) | Cod sursa (job #1365697) | Cod sursa (job #976813) | Cod sursa (job #1636267) | Cod sursa (job #487443)
Cod sursa(job #487443)
#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++)
{
if(energie + a[i].e>= v )
{
int bun = i;
for(int j=0; j<g;j++)
{
if(energie + a[j].e>=v && a[j].c < a[bun].c)
{
bun=j;
}
}
energie+=a[bun].e;
cost+=a[bun].c;
break;
}
energie+=a[i].e;
cost+=a[i].c;
}
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;
}