Cod sursa(job #1798108)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 4 noiembrie 2016 21:17:57
Problema Garaj Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>
#define MAX 2000000000
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int n,m,c,t=MAX,N,C[1<<17],T[1<<17];
int main()
{
    f>>n>>m;
    for(int i=1;i<=n;++i) f>>C[i]>>T[i],T[i]*=2;
    for(int st=1,dr=MAX,mij=(st+dr)>>1;st<=dr;mij=(st+dr)>>1)
    {
        c=0;
        for(int i=1;i<=n&&c<m;++i) c+=mij/T[i]*C[i];
        if(c>=m) dr=mij-1,t=min(mij,t);
        else st=mij+1;
    }
    for(int i=1;i<=n;++i)
        T[i]=-(t/T[i]*C[i]);
    sort(T+1,T+n+1);
    for(N=c=0;N<n&&c<m;++N) c-=T[N+1];
    g<<t<<' '<<N;
    return 0;
}