Cod sursa(job #3226035)

Utilizator Anul2024Anul2024 Anul2024 Data 19 aprilie 2024 18:34:19
Problema Garaj Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("garaj.in");
ofstream fout ("garaj.out");
struct camion
{
    long long t,c;
};
camion v[100001];
long long timp,st,dr,mij,m,cant[100001];
int n,i;
bool f (long long timp)
{
    long long sum=0;
    for (int i=1; i<=n; i++)
        sum+=v[i].c*(timp/v[i].t);
    return sum>=m;
}
int main()
{
    fin>>n>>m;
    for (i=1; i<=n; i++)
    {
        fin>>v[i].c>>v[i].t;
        v[i].t*=2;
    }
    st=1;
    dr=2e12;
    while (st<=dr)
    {
        mij=(st+dr)/2;
        if (f (mij))
            dr=mij-1;
        else
            st=mij+1;
    }
    timp=st;
    for (i=1; i<=n; i++)
        cant[i]=v[i].c*(timp/v[i].t);
    sort (cant+1,cant+n+1);
    reverse (cant+1,cant+n+1);
    for (i=1; i<=n&&m>0; i++)
        m-=cant[i];
    fout<<timp<<" "<<i-1;
    return 0;
}