我偏不

heyucheng 2023-06-24 10:32:36 2023-10-14 10:50:26 30 返回题目

#include<bits/stdc++.h>
#define int long long
using namespace std;
const long long maxn=1e5+10;
int a[maxn];
int n,Q;
int x;
int l,r;
void get(){
	l=1;r=n;
	while(l + 1 < r){
		int mid = (l+r)/2;
		if(a[mid] < x){
			l = mid;
		}
		else r = mid;
	}
}
void get2(){
	l=1;r=n;
	while(l + 1 < r){
		int mid = (l+r)/2;
		if(a[mid] <= x){
			l = mid;
		}
		else r = mid;
	}
}
signed main()
{
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}	
	cin>>Q;
	while(Q--){
		cin>>x;
		get();
		if(a[l] == x) cout<<l<<" ";
		else if(a[r] == x) cout<<r<<" ";
		else cout<<-1<<" ";
		get2();
		if(a[r] == x){
			cout<<r<<" ";
			if(r+1<=n) cout<<r+1<<endl;
			else cout<<-1<<endl;
		}
		else if(a[l] == x) cout<<l<<" "<<r<<endl;
		else{
			cout<<-1<<" ";
			if(a[l] > x) cout<<l<<endl;
			else if(a[r] > x)cout<<r<<endl;
			else cout<<-1<<endl;
		}
	}
	return 0;
 } 
{{ vote && vote.total.up }}

共 1 条回复

zhuliqin

不想更丰富地展现?不使用Markdown