Pagini recente » Cod sursa (job #961966) | Cod sursa (job #22338) | Cod sursa (job #139019) | Cod sursa (job #2552816) | Cod sursa (job #1025075)
#include <cstdio>
#include <algorithm>
using namespace std;
//ifstream fin ("garaj.in");
//ofstream fout ("garaj.out");
struct camioane {
int a;
int b;
};
camioane v[100010];
int n,m,i,j,p,u,mij,nrc,a[100010],ok,t;
int main () {
freopen("garaj.in","r",stdin);
freopen("garaj.out","w",stdout);
//fin>>n>>m;
scanf ("%d%d", &n,&m);
for (i=1;i<=n;i++)
scanf ("%d%d", &v[i].a, &v[i].b);
//fin>>v[i].a>>v[i].b;
p=1;u=2*m;
while (p<=u) {
mij=p+(u-p)/2; t=mij; ok=0;
j=m;
for(i=1; i<=n; i++){
j-=(t/(v[i].b<<1))*v[i].a;
if(j<1) ok=1;
}
if (ok==1)
u=mij-1;
else
p=mij+1;
}
//fout<<p<<" ";
printf("%d ", p);
for(i=1; i<=n; i++)
a[i]=(p/(v[i].b<<1))*v[i].a;
sort(a+1, a+n+1);
nrc=0;
j=m;
for(i=n;i>0;i--){
j -= a[i];
nrc++;
if(j<1) break;
}
//fout<<nrc<<"\n";
printf ("%d\n",nrc);
return 0;
}