Pagini recente » Cod sursa (job #299038) | Cod sursa (job #1788229) | Cod sursa (job #1746512) | Cod sursa (job #873895) | Cod sursa (job #1113683)
#include<cstdio>
#include<algorithm>
using namespace std;
struct cam{
int c;
int t;
}v[101000];
int n,m,i,j,t,ok,nr,nmin;
long long mid,p,u;
FILE *f,*g;
int cmp(cam a,cam b){
return a.c/a.t>b.c/b.t;
}
int verif(long long t){
int i,c,x=m;
for(i=1;i<=n;i++){
c=t/(v[i].t*2)*v[i].c;
x-=c;
if(x<=0){
nr=i;
break;
}
}
if(x<=0)
return 1;
return 0;
}
int main(){
f=fopen("garaj.in","r");
g=fopen("garaj.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++){
fscanf(f,"%d%d",&v[i].c,&v[i].t);
}
sort(v+1,v+n+1,cmp);
p=1;
u=2*m;
while(p<=u){
mid=(p+u)/2;
ok=verif(mid);
if(ok==1){
nmin=nr;
u=mid-1;
}
else
p=mid+1;
}
fprintf(g,"%lld %d",p,nmin);
fclose(f);
fclose(g);
return 0;
}