提交记录 2027


用户 题目 状态 得分 用时 内存 语言 代码长度
alphaGem 1003. 测测你的二分查找 Runtime Error 0 7.84 us 12 KB C 683 B
提交时间 评测时间
2018-06-21 15:59:40 2020-07-31 20:57:47
int gmax(register int a,register int b){return a>b?a:b;}
int gmin(register int a,register int b){return a<b?a:b;}
int binary_search(unsigned *a,int n,register unsigned x)
{
	n--;
	int p=1ll*n*(x-a[0])/(a[n]-a[0]+1),lim=16;
	p+=1ll*(n-p)*(x-a[p])/(a[n]-a[p]+1);
	//p+=1ll*(n-p)*(x-a[p])/(a[n]-a[p]+1);
	if(x<=a[p])
	{
		for(;a[gmax(p-lim,0)]>x;lim<<=1);
		register int l=gmax(p-lim,0),r=p;
		do
		{
			register int mid=(l+r)>>1;
			(a[mid]<x)?(l=mid+1):(r=mid);
		}
		while(l!=r);
		return l;
	}
	else
	{
		for(;x>a[gmin(p+lim,n)];lim<<=1);
		register int l=p,r=gmin(p+lim,n);
		do
		{
			register int mid=(l+r)>>1;
			(a[mid]<x)?(l=mid+1):(r=mid);
		}
		while(l!=r);
		return l;
	}
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #17.84 us12 KBRuntime ErrorScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-21 07:21:12 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠