Cod sursa(job #1877154)

Utilizator Daria09Florea Daria Daria09 Data 13 februarie 2017 00:00:59
Problema Garaj Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <math.h>
#include <algorithm>
#define tmax 1000000000000
#define Nmax 100005
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int n,c[Nmax],t[Nmax],m,a[Nmax];
bool verif(long long x)
{
    int sol=0;
    for(int i=1;i<=n;i++)
        { sol+=c[i]*(x/t[i]); if(sol>=m) return true;}
    return false;
}
int main()
{
   f>>n>>m;
    for(int i=1;i<=n;i++)
        f>>c[i]>>t[i];
    long long i,j;
    i=1; j=1000000000001LL;
    while(i<=j)
    {
       long long mid=(i+j)/2;
        if(verif(mid)==true) j=mid-1; else i=mid+1;
    }
    g<<i*2<<" "; j=i; int sum=0;
    for(i=1;i<=n;i++)a[i]=c[i]*(j/t[i]);
    sort(a+1,a+n+1);
    for(i=n;i>=1;i--){ sum+=a[i]; if(sum>=m)break;}
    g<<n-i+1;
    return 0;
}