Pagini recente » Cod sursa (job #1704500) | Cod sursa (job #2429057) | Cod sursa (job #355077) | Cod sursa (job #2125266) | Cod sursa (job #1821975)
#include <fstream>
#include <algorithm>
using namespace std;
float x[5002], y[5002];
int a[5002], b[5002], c, n, s;
ifstream cin("energii.in");
ofstream cout("energii.out");
int caut(int st, int dr, float v[], float x)
{
if(st > dr)
return 0;
else
{
int m = (st + dr)/2;
if(v[m] == x)
return m;
if(v[m] > x)
return caut(1, m-1, v, x);
if(v[m] < x)
return caut(m+1, dr, v, x);
return 0;
}
}
int main()
{
cin >> n;
cin >> c;
for (int i = 1; i <= n; i++)
{
cin >> a[i] >> b[i];
x[i] = float(a[i] / b[i]);
y[i] = x[i];
}
sort (y + 1, y + n + 1);
int ind = n;
while (c && ind)
{
c -= b[caut(1, n, x, y[ind])];
s += b[caut(1, n, x, y[ind])];
ind--;
}
cout << s;
}