Pagini recente » Cod sursa (job #866277) | Cod sursa (job #2278947) | Cod sursa (job #2139043) | Cod sursa (job #712730) | Cod sursa (job #471065)
Cod sursa(job #471065)
#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("%d ",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("%d\n",sol);
return 0;
}