Cod sursa(job #2007811)

Utilizator refugiatBoni Daniel Stefan refugiat Data 4 august 2017 09:16:36
Problema Garaj Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define MAX 2000000000
using namespace std;
ifstream si("garaj.in");
ofstream so("garaj.out");
int c[100005],t[100005];
int main()
{
    int n,m;
    si>>n>>m;
    for(int i=1;i<=n;++i)
    {
        si>>c[i]>>t[i];
        t[i]*=2;
    }
    int s,r=MAX;
    for(int st=1,dr=MAX,mij=(st+dr)>>1;st<=dr;mij=(st+dr)>>1)
    {
        s=0;
        for(int i=1;i<=n&&s<m;++i)
            s+=(mij/t[i])*c[i];
        if(s>=m)
        {
            dr=mij-1;
            r=min(mij,r);
        }
        else
        {
            st=mij+1;
        }
    }
    for(int i=1;i<=n;++i)
        t[i]=-((r/t[i])*c[i]);
    sort(t+1,t+n+1);
    int rasp;
    for(rasp=0,s=0;rasp<n&&s<m;++rasp)
        s-=t[rasp+1];
    so<<r<<' '<<rasp;
    return 0;
}