求助!!! 1TLE 剩下WA
查看原帖
求助!!! 1TLE 剩下WA
758623
_Waldeinsamkeit_楼主2022/8/1 13:28

求助!!! 1TLE 剩下WA

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int a[1000000];
int main()
{   
	int n,m,l,w,f=1,i,j,z=0,s=1;
	scanf("%d %d",&n,&m);
	for (i=1;i<=n;i++)
		scanf("%d",&a[i]);
	for (i=1;i<=m;i++)
		{
		scanf("%d",&l);
		int x=1,y=n;
		f=1;
		while (s>=l)
			{
			z++;
			s=s*2;
			}
		s=0;
		while (z!=s)
			{
			s++;
			w=x+(y-1)/2;
			if (l<a[w])
				{
				y=w-1;
				}
			else if (l>a[w])
				{
				x=w+1;	
				}
			else
				{
				for (j=w-1;j>=1;j--)
					if (a[j]==a[w])
						w--;
				x=w;
				break;
				}
			}
		if (a[x]==l)	
			{
			printf("%d",x);
			printf(" ");			
			}
		else
			printf("-1 ");
		}
	return 0;
}
2022/8/1 13:28
加载中...