Pagini recente » Cod sursa (job #2381819) | Cod sursa (job #832381) | Cod sursa (job #3033213) | Cod sursa (job #1047794) | Cod sursa (job #1107647)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct cen
{
int E;
int C;
};
cen L[10001];
int Cost,ok,s,i,W,G,costmin,Wramas;
bool cmp(cen x,cen y)
{
return x.C*y.E>x.E*y.C;
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&G);
scanf("%d",&W);
for(i=1;i<=G;i++)
{
scanf("%d",&L[i].E);
s=s+L[i].E;
scanf("%d",&L[i].C);
}
for(i=1;i<=G;i++)
if(L[i].E>=W)
costmin=L[i].C;
/*do
{
ok=1;
for(i=1;i<G;i++)
if(C[i]>C[i+1]&&E[i]<E[i+1])
{swap(C[i],C[i+1]);
swap(E[i],E[i+1]);ok=0;
}
}while(ok==0);
*/ //sortareaaaa
sort(L+1,L+G+1,cmp);
i=G;
Wramas=W;
if(s>=W)
{
while(i>=1&&Wramas!=0)
{ if(L[i].E<=Wramas)
{
Wramas=Wramas-L[i].E;
Cost=Cost+L[i].C;
i++;
}
else
if(L[i].C>=Cost)
{ Cost=L[i].C;
Wramas=0;
}
}
printf("%d",Cost);
}
else
printf("-1");
return 0;
}