84分,第一个WA,求调
查看原帖
84分,第一个WA,求调
1163610
yubaolai楼主2024/8/29 17:21
#include <bits/stdc++.h>
using namespace std;

int n,m,top=0,nx=0;

struct Info{
	int x,y;
}a[2000000];

int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		int t;
		scanf("%d",&t);
		if(t!=nx){
			top++;
			a[top].x=t,a[top].y=i;
			nx=t;
		}
	}
	for(int i=1;i<=m;i++){
		int q;
		scanf("%d",&q);
		int L=1,R=top+1;
		while(L+1!=R){
			int M=(L+R)/2;
			if(a[M].x<q)
				L=M;
			else
				R=M;
		}
		if(a[R].x!=q)
			printf("-1 ");
		else
			printf("%d ",a[R].y);
	}
	return 0;
}
2024/8/29 17:21
加载中...