Pagini recente » Cod sursa (job #3185929) | Cod sursa (job #1716358) | Cod sursa (job #2836290) | Cod sursa (job #1657729) | Cod sursa (job #1379134)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
int sol,st,dr,i,n,m,a[100001][2],mij,viz[100001],k;
int check(int mij)
{
long long sol=0;
for(i=1;i<=n;i++)
{
sol+=1ll*a[i][0]*(mij/a[i][1]);
if(sol>=1ll*m)
return 1;
}
return 0;
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>a[i][0]>>a[i][1];
a[i][1]=a[i][1]*2;
}
st=1;
dr=2000000000;
while(st<=dr)
{
mij=(st+dr)/2;
if(check(mij))
{
dr=mij-1;
sol=mij;
}
else
st=mij+1;
}
fout<<sol;
for(i=1;i<=n;i++)
viz[i]=a[i][0]*(sol/a[i][1]);
sort(viz+1,viz+n+1);
sol=0;
for(i=n;i>=1;i--)
{
k+=viz[i];
sol++;
if(k>=m)
break;
}
fout<<" "<<sol;
return 0;
}