题解
2023-09-29 18:45:00
发布于:安徽
0阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int n,k,m;
int a[100005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>k;
//输入
while(k--){
cin>>m;
int low=lower_bound(a+1,a+n+1,m)-a;
//查找第一次大于等于m的位置
int up=upper_bound(a+1,a+n+1,m)-a;
//查找第一次大于出现m的位置
if(up!=low)
cout<<low<<" "<<up-1<<" ";
else
cout<<-1<<" "<<-1<<" ";
if(up==n+1) //特判:若m比序列中的任何数都大,输出-1
cout<<-1<<endl;
else
cout<<up<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个