Pagini recente » Cod sursa (job #3223552) | Cod sursa (job #1082714) | Cod sursa (job #2011080) | Cod sursa (job #1138248) | Cod sursa (job #1375743)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("garaj.in");
ofstream fout("garaj.out");
int st,dr,m,n,i,solv,mijl,solv1,vect[100001];
long int sum;
struct str
{
int x;
int y;
}v[100001];
int verif(int val)
{
long int sol=0;
for(i=1;i<=n;i++)
{
sol+=1ll*v[i].x*(val/v[i].y);
if(sol>=1ll*m)
return 1;
}
return 0;
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>v[i].x>>v[i].y;
v[i].y*=2;
}
st=1;
dr=2000000000;
while(st<=dr)
{
mijl=(st+dr)/2;
if(verif(mijl))
{
solv=mijl;
dr=mijl-1;
}
else
st=mijl+1;
}
fout<<solv<<" ";
for(i=1;i<=n;i++)
vect[i]=v[i].x*(solv/v[i].y);
sort(vect+1,vect+n+1);
i=n;
while(sum<=m)
{
sum+=vect[i];
solv1++;
i--;
}
fout<<solv1;
return 0;
}