64分,第一点WA,最后一点TLE
查看原帖
64分,第一点WA,最后一点TLE
480674
许宇智xyz楼主2022/8/16 23:06
#include<bits/stdc++.h>
using namespace std;
int a[1000001];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=m;i++){
		int t,l=1,r=n;
		cin>>t;
		while(l<r){
			int mid=(l+r)/2;
			if(a[mid]<t) l=mid+1;
			else if(a[mid]>t) r=mid;
			else{
				while(mid--){
					if(a[mid]!=a[mid+1]){
						cout<<mid+1<<" ";
						break;
					}
				}
				break;
			}
		}
		if(l>=r) cout<<"-1 ";
	}
	return 0;
}
2022/8/16 23:06
加载中...