BOJ-17298
16 Feb 2022#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
vector<int> arr(n + 1);
stack<int> st;
vector<int> nge(n + 1, -1);
for (int i = 1; i <= n; i++) {
cin >> arr[i];
}
for (int i = 1; i <= n; i++) {
while (!st.empty() && arr[st.top()] < arr[i]) {
nge[st.top()] = arr[i];
st.pop();
}
st.push(i);
}
for (int i = 1; i <= n; i++)
cout << nge[i] << " ";
cout << endl;
}