Pagini recente » Cod sursa (job #1540018) | Cod sursa (job #2288712) | Profil EugenStoica | Istoria paginii runda/eusebiuoji2004cls9 | Cod sursa (job #1690720)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NM=(1e5)+5;
long long st,dr,mij,suc[NM];
int a[NM], b[NM],i,n,m;
bool stiee(long long time)
{
int i;
long long suc=0;
for(i=1; i<=n; ++i)
{
suc += a[i]*(time/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]=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;
}