#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... |