题解 | 数列后缀极大位置统计
数列后缀极大位置统计
https://www.nowcoder.com/practice/9b791983564d4ad9a1bf298670562c68
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> f(n + 1);
stack<int> zhan;
int ans = 0;
for (int i = 1; i <= n; ++i) {
cin >> f[i];
while (!zhan.empty() && f[i] >= f[zhan.top()]) {
ans ^= zhan.top();
zhan.pop();
}
zhan.push(i);
ans ^= i;
cout << ans << endl;
}
return 0;
}
