Pagini recente » Cod sursa (job #1289187) | Cod sursa (job #2942237) | Cod sursa (job #876004) | Cod sursa (job #997433) | Cod sursa (job #1938343)
#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].t)*v[i].c;
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;
}