样例过了上谷全wa
查看原帖
样例过了上谷全wa
914335
xiongmy123楼主2023/6/10 14:29

代码如下

#include <bits/stdc++.h>
using namespace std;

int n,m;

int ef(int a[],int x){
	int l=0,r=m-1,mid=(l+r)/2;
	while(l<r){
		int mid=(l+r)/2;
		if(a[mid]==x)
		   return mid;
		else if(a[mid]<x){
			l=mid+1;
		}
		else if(a[mid]>x)
		    r=mid;
	}
	return -1;
}

int main(){
	cin>>n>>m;
	int a1[n],a2[m];
	for(int i=0;i<n;i++){
		cin>>a1[i];
	}
	for(int i=0;i<m;i++){
		cin>>a2[i];
	}
	for(int i=0;i<m;i++){
		int x=ef(a1,a2[i]);
		if(x==-1)
		  cout<<-1<<" ";
		else{
		   while(a1[x]==a2[i])
		     x--;
		   cout<<x+2<<" ";
	    }
	}
  return 0;
}

2023/6/10 14:29
加载中...