Cod sursa(job #2561590)

Utilizator mihaitabbindea mihai mihaitab Data 28 februarie 2020 22:48:38
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 kb
#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;
}