Pagini recente » Cod sursa (job #1192245) | Cod sursa (job #1590304) | Cod sursa (job #2113685) | Cod sursa (job #1159695) | Cod sursa (job #983861)
Cod sursa(job #983861)
#include<cstdio>
#include<algorithm>
using namespace std;
struct camion {int c,t;} c[100001];
long long sol,mij,i,u,p;
long long n,k;
int s[100001];
long long trans(long long x){
long long R=0;
for(i=1;i<=n;i++)
R+=c[i].c * (x/(c[i].t*2));
return R;
}
int main(){
freopen("garaj.in","r",stdin);
freopen("garaj.out","w",stdout);
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++)
scanf("%lld %lld",&c[i].c,&c[i].t);
p=1;
u=k*c[1].t/c[1].c;
sol=u*2;
while(p<=u){
mij=(p+u)/2;
if(trans(mij)>=k){
sol=mij;
u=mij-1;
}
else
p=mij+1;
}
for(i=1;i<=n;i++)
s[i]+=c[i].c * (sol/(c[i].t*2));
sort(s+1,s+1+n);
int R=0;
int nr=0;
for(i=n;i>=1;i--){
R+=s[i];
nr++;
if(R>=k)
break;
}
printf("%lld %d",sol,nr);
return 0;
}