Pagini recente » Rating Ion Costin (costin72) | Cod sursa (job #1209413) | Cod sursa (job #1907016) | Cod sursa (job #1896651) | Cod sursa (job #166582)
Cod sursa(job #166582)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define lg 100005
int n, m, nrmin, nr, i, rezultat;
struct camion{
int c, t;
};
camion v[lg];
int check(int val){
int i, t[lg] = {0};
long long sm = 0;
for (i = 1; i <= n; i ++){
t[i] = v[i].c * (val / v[i].t);
sm += t[i];
}
if (sm < m)
return 0;
sm = 0;
sort(t+1, t+n+1);
for (i = n; i; i --){
sm += t[i];
if (sm >= m)
break;
}
nr = n-i+1;
return 1;
}
int bs(){
int li = 1, ls = 200000000, x, gs = 0;
while (li <= ls){
x = (li+ls) / 2;
if (check(x)){
gs = x, nrmin = nr;
ls = x-1;
}
else
li = x+1;
}
return gs;
}
int main()
{
freopen("garaj.in", "rt", stdin);
freopen("garaj.out", "wt", stdout);
scanf("%d%d", &n, &m);
for (i = 1; i <= n; i ++){
scanf("%d%d", &v[i].c, &v[i].t);
v[i].t *= 2;
}
rezultat = bs();
printf("%d %d\n", rezultat, nrmin);
return 0;
}