Pagini recente » Cod sursa (job #217149) | Cod sursa (job #802658) | Cod sursa (job #3147935) | Cod sursa (job #1219647) | Cod sursa (job #1911130)
#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 = 0 , dr = 10000000001;
long long timp = 0LL;
while(st <= dr)
{
mij = (st + dr) >> 1;
int val = 0LL;
for (int i = 1; i<=n && val <= m; ++i)
val += (int)( (1LL * mij) / (1LL*t[i]) * 1LL * c[i]);
if (val >= m)
timp = mij , dr = mij - 1;
else st = mij + 1;
}
printf("%lld ", 2 * timp);
for (int i = 1; i<=n; ++i)
aux[i] = (int)((1LL * timp) / (t[i]) * 1LL * c[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;
}