Pagini recente » Cod sursa (job #3296619) | Cod sursa (job #1458670) | Cod sursa (job #2493521) | Cod sursa (job #1676919) | Cod sursa (job #2561590)
#include <fstream>
using namespace std;
ifstream cin ("energii.in");
ofstream cout ("energii.out");
int g, w, c[1001], p[1001], cmin;
double e[1001];
void qwicksort (int s, int d)
{
if (s<d)
{
int lp=s;
for (int i=s+1;i<d;i++)
{
if (e[i]<e[s])
{
double daux=e[i];
e[i]=e[lp];
e[lp]=daux;
int aux=c[i];
c[i]=c[lp];
c[lp]=aux;
aux=p[i];
p[i]=p[lp];
p[lp]=aux;
lp++;
}
}
double daux=e[s];
e[s]=e[lp];
e[lp]=daux;
int aux=c[s];
c[s]=c[lp];
c[lp]=aux;
aux=p[s];
p[s]=p[lp];
p[lp]=aux;
qwicksort(s, lp);
qwicksort(lp+1, d);
}
}
int main()
{
cin >> g >> w;
for (int i=1;i<=g;i++)
{
cin >> p[i] >> c[i];
{
e[i]=p[i]/c[i];
}
}
qwicksort(1, g);
for (int i=g;i>0&&w>0;i--)
{
cmin+=c[i];
w-=p[i];
}
if (w>0)
{
cout << -1;
}
else
{
cout << cmin;
}
return 0;
}