Pagini recente » Cod sursa (job #247577) | Cod sursa (job #411709) | Cod sursa (job #2178635) | Cod sursa (job #1890391) | Cod sursa (job #471061)
Cod sursa(job #471061)
#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*=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*((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;
}