别抄题解
2023-07-24 16:08:21
发布于:河北
61阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int h = 1e5;
int a[h] ,n,q,p;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>q;
while(q--){
cin>>p;
//1
if(lower_bound(a+1,a+n+1,p)-a== n+1||a[lower_bound(a+1,a+n+1,p)-a]!=p){
cout<<-1<<" ";
}else{
cout<<lower_bound(a+1,a+n+1,p)-a<<" ";
}
//2
if(upper_bound(a+1,a+n+1,p)-a-1>0&&a[upper_bound(a+1,a+n+1,p)-a-1] == p){
cout<<upper_bound(a+1,a+n+1,p)-a-1<<" ";
}else{
cout<<-1<<" ";
}
//3
if(upper_bound(a+1,a+n+1,p)-a == n+1){
cout<<-1<<"\n";
}else{
cout<<upper_bound(a+1,a+n+1,p)-a<<"\n";
}
//每次询问给出一个整数num
//你需要回答序列中第一个等于num的位置
//最后一个等于num的位置,第一个大于num的位置
//如果相应的位置不存在,就输出-1
}
return 0;
}
这里空空如也
有帮助,赞一个