Pagini recente » Cod sursa (job #1763866) | Cod sursa (job #1363559) | Cod sursa (job #1456030) | Cod sursa (job #2323780) | Cod sursa (job #1938339)
#include <cstdio>
#include <algorithm>
using namespace std;
#define LMAX 100005
int n,m;
struct camion{
int c,t;
}v[LMAX];
int T[LMAX];
inline bool Sol(int x){
int no=0;
for(int i=1;i<=n;++i){
no+=(x/v[i].t)*v[i].c;
if(no>=m) break;
}
if(no>=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].c,&v[i].t);
v[i].t*=2;
}
int p=1,u=(1<<30);
while(p<=u){
int mij=(p+u)/2;
if(Sol(mij)) u=mij-1;
else p=mij+1;
}
int no=0;
for(int i=1;i<=n;++i){
T[i]=p*v[i].c/v[i].t;
no+=T[i];
}
sort(T+1,T+n+1);
int Min=n,i=1;
while(no>=m){
no-=T[i];
++i;
if(no<m) break;
--Min;
}
printf("%d %d\n",p, Min);
return 0;
}