#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define sz(v) (int)(v).size()
#define all(v) (v).begin(), (v).end()
int n;
vector<bool> vis;
vector<int> a, p, v;
void f(int x) {
if (x == n) {
for (auto i : p)
cout << i + 1 << ' ';
exit(false);
}
for (int i = 0; i < n; i++) {
if (vis[i]) continue;
p[x] = i;
v[x] = 1;
for (int j = 0; j < x; j++)
if (p[j] < i) v[x] += v[j];
if (a[x] - (x ? a[x - 1] : 0) != v[x]) continue;
vis[i] = true;
f(x + 1);
vis[i] = false;
}
}
int main() {
ios::sync_with_stdio(false); cin.tie(nullptr);
cin >> n;
a.assign(n, 0);
for (auto &i : a)
cin >> i;
vis.assign(n, false);
p = v = vector<int>(n);
f(0);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |