Pagini recente » Cod sursa (job #749387) | Cod sursa (job #1588341) | Cod sursa (job #532711) | Cod sursa (job #1550797) | Cod sursa (job #1911099)
#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 = 1e10 + 1;
long long timp = 0LL;
while(st <= dr)
{
mij = (st + dr) >> 1;
long long val = 0LL;
for (int i = 1; i<=n && val <= m; ++i)
val = val + (1LL * mij) / (2LL*t[i]) * 1LL * c[i];
if (val >= m)
timp = mij , dr = mij - 1;
else st = mij + 1;
}
printf("%lld ", timp);
for (int i = 1; i<=n; ++i)
aux[i] = (int)((1LL * timp) / (2LL*t[i]) * 1LL * c[i]);
sort(aux + 1, aux + n + 1);
int ans = 0;
long long val = 0LL;
for (int i = n; i>=1 && val <=m ; val+=aux[i] , ++ans, --i);
printf("%d\n", ans);
return 0;
}