#include #include #include int kaks = 2023; using namespace std; vector lista(kaks, 0); vector> syote; set loputluvut; int kasitellyt_luvut = 0; vector p(kaks+1, 0); vector v; int summa = 0; int mika = 0; bool loytynyt = false; void haku() { if (loytynyt == true)return; else if (summa > syote[mika].first) return; else if (v.size() == 43) { if (summa == syote[mika].first) { for (int i = 0; i < 43; i++) { lista[i] = v[i]; loputluvut.insert(v[i]); kasitellyt_luvut++; } loytynyt = true; } else return; } else { for (int i = 1; i <= kaks; i++) { if (p[i] == 1) continue; if (loputluvut.count(i) == 1) continue; p[i] = 1; summa += i; v.push_back(i); haku(); summa -= i; p[i] = 0; v.pop_back(); } } } int main() { for (int i = 0; i < 100; i++) { int x; cin >> x; syote.push_back({ x, i }); } haku(); for (int i = kasitellyt_luvut; i < kaks; i++) { for (int j = 1; j <= kaks; j++) { if (loputluvut.count(j) == 0) { lista[i] = j; loputluvut.insert(j); break; } } } for (int i : lista) cout << i << " "; }