ababababa!!!

【模板】单调栈

#include <bits/stdc++.h>
using namespace std;
#define int long long
inline int read() {
	int s = 0, w = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9') {
		if (ch == '-') {
			w = -1;
		}
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9') {
		s = s * 10 + ch - '0', ch = getchar();
	}
	return s * w;
}
int n = read(), a[3000010], ans[3000010];
stack<int> s;
signed main() {
//	freopen("in.in", "r", stdin);
//	freopen("out.out", "w", stdout);
	for (int i = 1; i <= n; i++) {
		a[i] = read();
	}
	s.push(n);
	for (int i = n - 1; i > 0; i--) {
		while (!s.empty() && a[i] >= a[s.top()]) {
			s.pop();
		}
		if (s.empty()) {
			ans[i] = 0;
		} else {
			ans[i] = s.top();
		}
		s.push(i);
	}
	for (int i = 1; i <= n; i++) {
		cout << a[i] << ' ';
	}
	return 0;
}

ni?输出弄错了?