Pagini recente » Cod sursa (job #1283310) | Cod sursa (job #2105760) | Cod sursa (job #2806959) | Cod sursa (job #338168) | Cod sursa (job #1911157)
#include <bits/stdc++.h>
using namespace std;
int n,m,c[100005],t[100005],aux[100005];
int main()
{
freopen("garaj.in","r",stdin);
freopen("garaj.out","w",stdout);
scanf("%d %d\n", &n, &m);
for (int i = 1; i<=n; ++i)
scanf("%d %d\n", &c[i], &t[i]);
long long st , dr , mij;
st = 1 , dr = 1e12 + 1;
long long timp = 0LL;
while(st <= dr)
{
mij = (st + dr) >> 1;
int val = 0;
for (int i = 1; i<=n && val <= m; ++i)
val += (int)(c[i] * (mij / t[i]));
if (val >= m)
dr = mij - 1;
else st = mij + 1;
}
printf("%lld ", 2 * st);
for (int i = 1; i<=n; ++i)
aux[i] = (int)(c[i] * (st / t[i]));
sort(aux + 1, aux + n + 1);
int ans = 0;
int val = 0;
for (int i = n; i>=1 && val <=m ; val+=aux[i] , ++ans, --i);
printf("%d\n", ans);
return 0;
}