Cod sursa(job #2386058)

Utilizator VladTZYVlad Tiganila VladTZY Data 22 martie 2019 09:19:02
Problema Garaj Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>

#define tmax 1000000000000
#define Nmax 100005

using namespace std;

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

int n,c[Nmax],t[Nmax],m,a[Nmax];
long long i,j,mid,sum;

bool verif(long long x)
{
    int s=0;
    for(int i=1;i<=n;i++)
    {
        s+=c[i]*(x/t[i]);
        if(s>=m)
            return 0;
    }
    return 1;
}
int main()
{
   f>>n>>m;
    for(i=1;i<=n;i++)
        f>>c[i]>>t[i];
    long long i,j;
    i=1; j=1000000000001LL;
    while(i<=j)
    {
        mid=(i+j)/2;
        if(verif(mid)==0)
            j=mid-1;
        else
            i=mid+1;
    }
    g<<i*2<<" ";
    j=i;sum=0;
    for(i=1;i<=n;i++)
        a[i]=c[i]*(j/t[i]);
    sort(a+1,a+n+1);
    for(i=n;i>=1;i--)
    {
        sum+=a[i];
        if(sum>=m)
            break;
    }
    g<<n-i+1;
    return 0;
}