Pagini recente » Cod sursa (job #1819034) | Cod sursa (job #3154996) | Cod sursa (job #3294717) | Cod sursa (job #3188348) | Cod sursa (job #138333)
Cod sursa(job #138333)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define MAX_N 100005
#define FIN "garaj.in"
#define FOUT "garaj.out"
#define ll long long
int N, M, C[MAX_N], T[MAX_N];
ll V[MAX_N];
ll solve(int time)
{
int i; ll ret = 0;
for (i = 0; i < N; ++i)
{
V[i] = (ll)C[i]*(time/T[i]);
ret += V[i];
}
return ret;
}
int main(void)
{
int i, inc;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d %d", &N, &M);
for (i = 0; i < N; ++i)
scanf("%d %d", C+i, T+i);
for (i = 0, inc = 1<<30; inc; inc >>= 1)
if (solve(i+inc) < M) i += inc;
printf("%d ", 2*(++i));
solve(i);
sort(V, V+N);
reverse(V, V+N);
for (i = 0; i < N; ++i)
if ((M -= V[i]) <= 0) break;
printf("%d\n", i+1);
return 0;
}