或许是标准题解
2023-07-24 16:00:28
发布于:河北
36阅读
0回复
0点赞
#include <bits/stdc++.h>//就要用万能头
using namespace std;
int main(){
int n,a[114514],m;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>m;
for(int i=1;i<=m;i++){
int l,u,x,r;
cin>>x;
l=lower_bound(a+1,a+n+1,x)-a;//a+1避免查找下标0//查找第一个大于等于num的位置
u=upper_bound(a+1,a+n+1,x)-a;//查找第一个大于num的位置
r = u-1;//第一个大于num的位置前一个就是最后一个等于num的位置
if(l==u && l!=n+1) l=r=-1;//如果两个位置都存在并且第一个大于num的位置就是第一个大于等于num的位置,那么没有等于num的位置
else if(l==n+1) l=r=u=-1;//查找不存在则返回最后一个位置
else if(u==n+1) u=-1;
cout<<l<<" "<<r<<" "<<u<<"\n";//转义字符换行提速
}
return 0;
}
这里空空如也
有帮助,赞一个