Pagini recente » Cod sursa (job #379352) | Cod sursa (job #1837629) | Cod sursa (job #2568468) | Cod sursa (job #2827369) | Cod sursa (job #1116485)
#include <fstream>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
int c[100001],t[100001];
int n,m;
bool check (int val)
{
long long s = 0;
for (int i=1; i<=n; ++i)
{
s += 1LL*val/(2*t[i])*c[i];
}
if (s >= m)
return 1;
return 0;
}
int main()
{
fin>>n>>m;
for (int i=1; i<=n; ++i)
{
fin>>c[i]>>t[i];
}
int lo = 0, hi = 2000000001;
while (hi - lo > 1)
{
int mid = (lo + hi)/2;
if (check (mid))
hi = mid;
else lo = mid;
}
fout<<hi<<" ";
for (int i=1; i<=n; ++i)
c[i] = hi/(2*t[i])*c[i];
sort (c+1,c+n+1);
int s=0;
int i = n;
for (; s < m; --i)
s += c[i];
fout<<n-i;
}