解説動画はこちら!
コード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i, n) for (int i = 0; i < (n); ++i)
// POINT: order[p] := 人pが前から何番目に並んでいるかを返す
int main() {
int n;
cin >> n;
vector order(n);
rep(i, n) {
int p;
cin >> p;
p--;
order[p] = i;
}
// for (int i = 0; i < n; i++) {
// cout << i << " " << order[i] << endl;
// }
int q; cin >> q;
vector ans;
rep(i, q) {
int a, b;
cin >> a >> b;
a--;
b--;
if (order[a] < order[b]) {
ans.push_back(a + 1);
} else {
ans.push_back(b + 1);
}
}
for (auto e : ans) {
cout << e << endl;
}
return 0;
}
コメント