题解
2023-07-21 15:49:44
发布于:四川
101阅读
0回复
0点赞
这个题我掏出了我的 unordered_map 逃避了前两个询问,但是后面的一个询问只能用 upper_bound 来做QAQ后面用 unordered_map 只能枚举,我感觉有点太慢了。
下面是代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_map>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> p;
unordered_map<int,pair<int,int>> m;
for (int i=1;i<=n;++i){
int t;
cin >> t;
p.emplace_back(t);
if (m[t].first==0){
m[t].first=i;
}
m[t].second=i;
}
sort(p.begin(),p.end());//不明白他的有序是什么意思,是升序还是降序?
int q;
cin >> q;
for (int i=0;i<q;++i){
int t;
cin >> t;
if (m[t].first==0){
cout<<"-1 -1 ";
}else{
cout<<m[t].first<<" "<<m[t].second<<" ";
}
auto it=upper_bound(p.begin(),p.end(),t);
if (it==p.end()){
cout<<"-1"<<endl;
}else{
cout<<m[*it].first<<endl;
}
}
return 0;
}
全部评论 1
没事 看错了
2025-02-25 来自 广东
0
有帮助,赞一个