Pagini recente » Cod sursa (job #1661021) | Cod sursa (job #1176096) | Cod sursa (job #2372906) | Cod sursa (job #2624209) | Cod sursa (job #471060)
Cod sursa(job #471060)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define ll long long
ll dr,st,mij,s,sol,vec[100006];
int n,m;
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=1000000000;
dr*=100000;
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*((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;
}