第一个点wa
查看原帖
第一个点wa
202606
轻绘楼主2020/9/29 12:45
#include<bits/stdc++.h>

using namespace std;

int n,m;

int a[1000001];

int p;
bool check(int x){

	return p>x;
}
int main(){

	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	for(int i=1;i<=m;i++){
		scanf("%d",&p);
		int l=1,r=n,mid;
		while(l<r){
			mid=(l+r)>>1;
			if(check(a[mid])){
				l=mid+1;
			}
			else{
				r=mid;
			}
		}
		if(a[l]!=p){
			printf("-1 ");
			continue;
		}
		while(a[l-1]==a[l]){
			--l;
		}
		printf("%d ",l);
	}
	return 0;
}

//第一个点wa了,哪位大佬帮忙看一下

2020/9/29 12:45
加载中...