Cod sursa(job #2911559)

Utilizator MihaiCostacheCostache Mihai MihaiCostache Data 30 iunie 2022 15:12:38
Problema Garaj Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
int n, m, c[100001], t[100001], st, dr, v[100001];
int main()
{
    fin>>n>>m;
    for(int i=1; i<=n; i++)
    {
        fin>>c[i]>>t[i];
        t[i]=t[i]*2;
        dr=max(dr, m/c[i]*t[i]);
    }
    st=1;
    while(st<=dr)
    {
        int mid=(st+dr)/2;
        int sum=0;
        for(int i=1; i<=n; i++)
        {
            if(sum<m)
            {
                sum+=mid/t[i]*c[i];
            }
            else
            {
                break;
            }
        }
        if(sum<m)
        {
            st=mid+1;
        }
        else
        {
            dr=mid-1;
        }
    }
    fout<<st<<" ";
    for(int i=1; i<=n; i++)
    {
        v[i]=st/t[i]*c[i];
    }
    sort(v+1, v+n+1);
    int sum=0;
    int i;
    for(i=1; i<=n; i++)
    {
        sum+=v[i];
        if(sum>=m)
        {
            break;
        }
    }
    fout<<i-1;
    return 0;
}