Cod sursa(job #1535183)

Utilizator andrei-sasAndrei Sas-Miresan andrei-sas Data 24 noiembrie 2015 13:53:44
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");

struct en
{
    int e,c;
    double r;
};

int ordo1(en A, en B)
{
    return(A.r<B.r);
}

/*int ordo2(en A, en B)
{
    return(A.e>B.e);
}*/

int n,i,m,k,s,ok;
en S[1001];
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
    {
        f>>S[i].e>>S[i].c;
        S[i].r=((double)S[i].c)/S[i].e;
        s=s+S[i].e;
    }
    if(s<m)
    {
        g<<"-1";
        f.close();
        g.close();
        return 0;
    }
    //sort(S+1,S+n+1,ordo2);
    sort(S+1,S+n+1,ordo1);
    //for(i=1;i<=n;i++)
        //g<<S[i].e<<" "<<S[i].c<<" "<<S[i].r<<'\n';
    i=1;
    ok=1;
    s=0;
    while(s<m && ok!=0)
    {
        if(i==n)
            ok=0;
        k=k+S[i].c;
        s=s+S[i].e;
        i++;
    }
    g<<k;
    f.close();
    g.close();
    return 0;
}