#include #include #include using namespace std; vector> syote; vector lista(2023, 0); //tulostettava lista set ll; //jaljella olevat luvut int kasitellyt_luvut = 0; vector valiaika; //valiaikainen lista johon tallentetaan luvut int summa = 0; //valiaikaine haussa kaytettava summa int mika = 0; int tavoite = 0; bool loytynyt = false; void haku(int k) { if (loytynyt == true) return; else if (valiaika.size() == 43) { if (summa == syote[mika].first && loytynyt == false) { for (int i = 0; i < valiaika.size(); i++) { lista[i] = valiaika[i]; ll.insert(valiaika[i]); kasitellyt_luvut++; } loytynyt = true; } } if (k == 2023) { return; } else { haku(k+1); valiaika.push_back(k); summa += k + 1; haku(k + 1); summa -= k + 1; valiaika.pop_back(); } } int main() { for (int i = 0; i < 100; i++) { int x; cin >> x; syote.push_back({ x, i }); } haku(1); /*for (int i = 0; i < 100; i++) { mika = i; tavoite = syote[i].first + 1; haku(1); }*/ for (int i = kasitellyt_luvut; i < 2023; i++) { for (int j = 1; j <= 2023; j++) { if (ll.count(j) == 0) { lista[i] = j; ll.insert(j); break; } } } for (int i : lista) cout << i << " "; }