从后往前找,可以依次确定每一头牛的身高。
每确定一头牛的身高,就在所有身高中删去该牛的身高。
#include <bits/stdc++.h>
using namespace std;
#define N 100005
int n;
int a[N], h[N];
vector<int> v;
int main() {
scanf("%d", &n);
v.emplace_back(1);
for (int i = 2; i <= n; ++i) {
scanf("%d", &a[i]);
v.emplace_back(i);
}
for (int i = n; i; --i) {
auto it = v.begin() + a[i];
h[i] = *it, v.erase(it);
}
for (int i = 1; i <= n; ++i) {
printf("%d\n", h[i]);
}
return 0;
}
O(n)是真的香