Cod sursa(job #1537345)

Utilizator andrei-sasAndrei Sas-Miresan andrei-sas Data 27 noiembrie 2015 09:33:42
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].e)/S[i].c;
        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=n;
    ok=1;
    s=0;
    while(s<m && ok!=0)
    {
        if(i==1)
            ok=0;
        k=k+S[i].c;
        s=s+S[i].e;
        i--;
    }
    g<<k;
    f.close();
    g.close();
    return 0;
}