Cod sursa(job #2381992)

Utilizator VladTZYVlad Tiganila VladTZY Data 17 martie 2019 15:42:33
Problema Garaj Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>

#define TMAX 1000000000
#define NMAX 100050

using namespace std;

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

int n,x,i,k,sum;
int c[NMAX],t[NMAX],v[NMAX];

int cautbin()
{
    int i=1,j=TMAX,mij=0,ok=0,s=0;
    while(i<=j)
    {
        mij=(i+j)/2;ok=0;s=0;

        for(int o=1;o<=n;o++)
        {
            s+=c[o]*(mij/t[o]);
            if(s>=x)
                ok=1;
        }

        if(ok==1)
            j=mij-1;
        else
            i=mij+1;
    }
    return i;
}

int main()
{
    f>>n>>x;
    for(i=1;i<=n;i++)
        f>>c[i]>>t[i];
    k=cautbin();
    g<<2*k<<" ";

    for(i=1;i<=n;i++)
        v[i]=c[i]*(k/t[i]);
    sort(v+1,v+1+n);
    for(i=n;i>=1;i--)
    {
        sum+=v[i];
        if(sum>x)
        {
            g<<n-i+1;
            return 0;
        }
    }

}