Cod sursa(job #1821975)

Utilizator MocalinnoMoca Andrei Catalin Mocalinno Data 3 decembrie 2016 23:12:23
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#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;
}