Pagini recente » Cod sursa (job #2978210) | Cod sursa (job #585599) | Cod sursa (job #2785325) | Cod sursa (job #3236398) | Cod sursa (job #2911559)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
int n, m, c[100001], t[100001], st, dr, v[100001];
int main()
{
fin>>n>>m;
for(int i=1; i<=n; i++)
{
fin>>c[i]>>t[i];
t[i]=t[i]*2;
dr=max(dr, m/c[i]*t[i]);
}
st=1;
while(st<=dr)
{
int mid=(st+dr)/2;
int sum=0;
for(int i=1; i<=n; i++)
{
if(sum<m)
{
sum+=mid/t[i]*c[i];
}
else
{
break;
}
}
if(sum<m)
{
st=mid+1;
}
else
{
dr=mid-1;
}
}
fout<<st<<" ";
for(int i=1; i<=n; i++)
{
v[i]=st/t[i]*c[i];
}
sort(v+1, v+n+1);
int sum=0;
int i;
for(i=1; i<=n; i++)
{
sum+=v[i];
if(sum>=m)
{
break;
}
}
fout<<i-1;
return 0;
}