Pagini recente » Cod sursa (job #780771) | Cod sursa (job #348707) | Cod sursa (job #3191212) | Cod sursa (job #3212450) | Cod sursa (job #471067)
Cod sursa(job #471067)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define ll long long
ll dr,st,mij,s,sol;
int n,m,vec[100006];
struct str
{
int x,y;
};
str v[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",&v[i].x,&v[i].y);
st=1;dr=m;
dr*=1000;
while(st<=dr)
{
mij=(st+dr)/2;
s=0;
for(i=1;i<=n;i++)
s+=v[i].x*((mij/v[i].y)/2);
if(s>=m)
{
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
printf("%lld ",sol);
for(i=1;i<=n;i++)
vec[i]=v[i].x*(ll)((sol/v[i].y)/2);
sort(vec+1,vec+n+1);
sol=0;
for(i=n;m>0;i--)
{
m-=vec[i];
sol++;
}
printf("%lld\n",sol);
return 0;
}