Pagini recente » Cod sursa (job #624942) | Cod sursa (job #967561) | Cod sursa (job #605380) | Cod sursa (job #2760543) | Cod sursa (job #1690735)
#include <cstdio>
#include <algorithm>
using namespace std;
long long st,dr,mij;
int a[100005], b[100005],i,n,m,suc[100005];
inline bool stiee(long long timp)
{
int i;
long long suc=0;
for(i=1; i<=n; ++i)
{
suc += a[i]*(timp/b[i]);
if(suc>=1LL*m) return 1;
}
return 0;
}
int main()
{
freopen("garaj.in", "r", stdin);
freopen("garaj.out", "w", stdout);
scanf("%d%d", &n, &m);
for(i=1; i<=n; ++i) scanf("%d%d", &a[i], &b[i]);
st=0;dr=1000LL*m;
while(st<=dr)
{
mij=((st+dr)>>1LL);
if(stiee(mij)) dr=mij-1;
else st=mij+1;
}
printf("%lld ", 2*st);
for(i=1; i<=n; ++i)
suc[i]=(int)(a[i]*(st/b[i]));
sort(suc+1, suc+n+1);
for(i=n; i; --i)
if(m>0) m-=suc[i];
else break;
printf("%d\n", n-i);
return 0;
}