没事干发个题解哈哈哈
2023-07-24 15:08:35
发布于:江苏
47阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int n, a[100005], m, b;
void quiz(int x);
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
cin >> m;
for (int i = 1; i <= m; i++) {
cin >> b;
quiz(b);
}
return 0;
}
void quiz(int x) {
int idxLow = lower_bound(a + 1, a + 1 + n, x) - a; // 找到第一个等于x的位置
int idxUpr = upper_bound(a + 1, a + 1 + n, x) - a; // 找到最后一个等于x的位置
int idx1, idx2, idx3;
idx1 = idx2 = idx3 = -1;
if (idxLow <= n && a[idxLow] == x) idx1 = idxLow; // 如果存在等于x的位置,则更新idx1为该位置的索引
if (idxUpr - 1 >= 1 && a[idxUpr - 1] == x) idx2 = idxUpr - 1; // 如果存在等于x的位置,则更新idx2为该位置的索引
if (idxUpr <= n) idx3 = idxUpr; // 如果存在等于x的位置,则更新idx3为该位置的索引
cout << idx1 << ' ' << idx2 << ' ' << idx3 << endl; // 输出结果
}
这里空空如也
有帮助,赞一个