#6 TLE,求调
查看原帖
#6 TLE,求调
772353
Qiula666666楼主2022/10/28 20:20

本题我开了O2还是有一个点超时

代码如下

#include<bits/stdc++.h>
using namespace std;
int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
int main()
{
	static int a,b,e,f,g,h,sum=0,kk,m,ksum=0;
	static int c[1000010];
	a=read();
	b=read();
	for(int i=1;i<=a;++i)
	c[i]=read();
	for(e=1;e<=b;e++)
	{	
		m=read();
		f=1;
		g=a;
	while(f<g)
	{   kk=f+g;
	    if(kk==3)
	    h=2;
	    else h=kk/2;
		if(c[h]==m)
		{
			g--;
			sum=h;
			}
		else if(c[h]<m)
		     f=h+1;
		     else g=h-1;
		if(f==g)
		{
			h=f;
			if(c[h]==m)
		{
			sum=h;
			}
			}
		}
		if(sum)
			printf("%d ",sum);
		else
			printf("%d ",-1);
	sum=0;
	}
	return 0;
} 

那位大佬帮忙指正一下

谢谢

附:测评结果

2022/10/28 20:20
加载中...