Pagini recente » Cod sursa (job #2679367) | Cod sursa (job #3204538) | Cod sursa (job #357263) | Cod sursa (job #1475998) | Cod sursa (job #471071)
Cod sursa(job #471071)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define ll long long
ll dr,st,mij,s,sol;
int n,m,vec[100006],X[100006],Y[100006];
int main ()
{
int i;
freopen("garaj.in","r",stdin);
freopen("garaj.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d%d",&X[i],&Y[i]);
st=1;dr=m;
dr*=1000;
while(st<=dr)
{
mij=(st+dr)/2;
s=0;
for(i=1;i<=n;i++)
s+=X[i]*(mij/(Y[i]<<1));
if(s>=m)
{
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
printf("%lld ",sol);
for(i=1;i<=n;i++)
vec[i]=X[i]*(ll)(sol/(Y[i]<<1));
sort(vec+1,vec+n+1);
sol=0;
for(i=n;m>0;i--)
{
m-=vec[i];
sol++;
}
printf("%lld\n",sol);
return 0;
}