Pagini recente » Cod sursa (job #1063364) | Cod sursa (job #1599129)
#include <bits/stdc++.h>
#define Nmax 100005
using namespace std;
int C[Nmax],T[Nmax],n,m;
long long v[Nmax];
inline bool Ok(long long x)
{
int i;
long long cnt=0;
for(i=1;i<=n;++i) cnt+=1LL*(x/T[i])*C[i];
return (cnt>=m);
}
int main()
{
int i;
ifstream cin("garaj.in");
ofstream cout("garaj.out");
cin>>n>>m;
for(i=1;i<=n;++i)
{
cin>>C[i]>>T[i];
T[i]*=2;
}
long long st=0,dr=2000000000000,mij,sol;
while(st<=dr)
{
mij=((st+dr)>>1);
if(Ok(mij))
{
sol=mij; dr=mij-1;
}
else st=mij+1;
}
cout<<sol<<" ";
for(i=1;i<=n;++i) v[i]=1LL*(sol/T[i])*C[i];
sort(v+1,v+n+1);
long long sum;
for(i=n,sum=v[n];i && sum<m;--i,sum+=v[i]);
cout<<n-i+1<<"\n";
return 0;
}