Pagini recente » Cod sursa (job #1019891) | Cod sursa (job #750318) | Cod sursa (job #1110231) | Cod sursa (job #62379) | Cod sursa (job #1536531)
#include <cstdio>
#include <algorithm>
#define DIM 100010
using namespace std;
int N, M; long long left, right, mid;
int V[DIM], W[DIM]; long long T[DIM];
inline bool Verif (long long time) {
int ok; long long car = 0;
for (int i = 1; i <= N; i ++) {
car += time / W[i] * 1LL * V[i];
if (car >= M)
return 1;
}
return 0;
}
int main () {
freopen ("garaj.in" ,"r", stdin );
freopen ("garaj.out","w", stdout);
scanf ("%d %d", &N, &M);
for (int i = 1; i <= N; i ++) {
scanf ("%d %d", &V[i], &W[i]);
W[i] *= 2;
}
left = 1; right = M * 1LL * 2000;
while (left <= right) {
mid = left + (right - left) / 2;
if (Verif (mid))
right = mid - 1;
else
left = mid + 1;
}
printf ("%lld ", left);
long long time = left;
for (int i = 1; i <= N; i ++)
T[i] = time / W[i] * 1LL * V[i];
sort (T + 1, T + N + 1);
long long car = 0;
for (int i = N; i >= 1; i --) {
car += T[i];
if (car >= M) {
printf ("%d", N - i + 1);
break;
}
}
return 0;
}