Cod sursa(job #3225456)

Utilizator mihail_11Ionescu Mihail mihail_11 Data 17 aprilie 2024 17:26:33
Problema Garaj Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int t[100005];
int c[100005];
int main()
{
    ifstream fin("garaj.in");
    ofstream fout("garaj.out");
    long long int N,M,C,T,st,i,dr,mid,sol,cont;
    fin>>N>>M;
    for(i=1;i<=N;i++)
    {
        fin>>c[i]>>t[i];
        t[i]*=2;
    }
    st=1;
    dr=1e16;
    while(st<=dr)
    {
        cont=0;
        mid=(st+dr)/2;
        for(i=1;i<=N;i++)
        {
            cont+=c[i]*(mid/t[i]);
        }
        if(cont<M)
        {
            st=mid+1;
        }
        else
        {
            sol=mid;
            dr=mid-1;
        }
    }
    fout<<sol<<' ';///Avem timpul
    cont=0;
    for(i=1;i<=N;i++)
    {
        c[i]*=(sol/t[i]);
    }
    sort(c+1,c+N+1);
    for(i=N;i>=0;i--)
    {
        cont+=c[i];
        if(cont>=M)
        {
            fout<<N-i+1;
            return 0;
        }
    }
    return 0;
}