解説動画
コード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i, n) for (int i = 0; i < (n); ++i)
int main() {
int n;
cin >> n;
vector h(n);
rep(i, n) cin >> h[i];
reverse(h.begin(), h.end());
vector ans;
stack stc;
rep(i, n) {
ans.push_back(stc.size());
while (!stc.empty() && stc.top() < h[i]) {
stc.pop();
}
stc.push(h[i]);
}
reverse(ans.begin(), ans.end());
for (auto e : ans) cout << e << " ";
cout << endl;
return 0;
}
コメント