Pagini recente » Cod sursa (job #975382) | Cod sursa (job #1095065) | Cod sursa (job #81077) | Cod sursa (job #2535364) | Cod sursa (job #982177)
Cod sursa(job #982177)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct da
{
unsigned c,t;
}v[100005];
unsigned x[100005];
int main()
{
freopen("garaj.in","r",stdin);
freopen("garaj.out","w",stdout);
unsigned n,m,i,j,st,dr,mi,s,t,w=0;
scanf("%u%u",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%u%u",&v[i].c,&v[i].t);
v[i].t=v[i].t*2;
}
dr=t=1000000000;
st=1;
while(st<=dr)
{
mi=(st+dr)/2;
s=0;
for(i=1;i<=n;i++)
s=s+mi/v[i].t*v[i].c;
if(s>=m)
{
t=mi;
dr=mi-1;
}
else
st=mi+1;
}
for(i=1;i<=n;i++)
x[i]=(t/v[i].t)*v[i].c;
sort(x+1,x+n+1);
for(i=n;i>=1;i--)
{
if(m>=x[i])
{
m=m-x[i];
}
else
break;
w++;
}
if(m!=0)
w++;
printf("%u %u\n",t,w);
return 0;
}