Pagini recente » Cod sursa (job #2498541) | Cod sursa (job #2262887) | Cod sursa (job #2776128) | Cod sursa (job #2150080) | Cod sursa (job #2911570)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("garaj.in");
ofstream cout("garaj.out");
int i, j, n, m, st, dr, mid, s;
int c[100005], v[100005], t[100005];
int f(int j){
int s=0;
for(int i=1;i<=n;i++){
s+=j/t[i]*c[i];
if(s>m)
return s;
}
return s;
}
int main() {
cin>>n>>m;
for (i=1;i<=n;i++) {
cin>>c[i]>>t[i];
t[i]*=2;
if(m/c[i]*t[i]>dr)
dr=m/c[i]*t[i];
}
st=1;
while (st<=dr) {
mid=(st+dr)/2;
s=f(mid);
if (s<m)
st=mid+1;
else
dr=mid-1;
}
cout<<st<<" ";
for (i=1;i<=n;i++)
v[i]=st/t[i]*c[i];
sort(v+1, v+n+1, greater<int>());
s=0;
for (i=1;i<=n && s<m;i++)
s+=v[i];
cout<<i+1;
}