Wpis z mikrobloga

@pieczywowewiadrze: Jeżeli możesz skorzystać z dodatkowej pamięci, zobacz sobie sekwencyjne generowanie kodów greya https://en.wikipedia.org/wiki/Gray_code#Constructing_an_n-bit_Gray_code i wygeneruj kody dla przedziału. Potem posortuj sortowaniem kubełkowym te liczby które masz. Wtedy przechodzisz sobie po sekwencji kodów greya, patrzysz czy masz taką liczbę w kubełku i jeśli masz wypisujesz. To jest tylko 10^6, więc nawet jakby generowanie kodów greya miało jakąś większą złożoność, to nie powinno być problemu.

Edit: możesz też użyć jakiejś hashmapy, zamiast
@Hauleth: 2^20 to tylko trochę ponad milion. Liczby tej wielkości zmieszczą się w 4 bajtach, więc potrzeba tylko 2^22 bajtów = 4 MiB.

@pieczywowewiadrze: Nie powinno być trudno wygenerować taki ciąg rekurencyjnie.

Jeśli potrafisz wygenerować odpowiednią kolejność dla n-bitowych liczb, to dla n+1-bitowych robisz tak:
1. Wypisujesz ciąg n-bitowych z dopisanym 0 z przodu.
2. Wypisujesz ciąg n-bitowych od tyłu z dopisanym 1 z przodu.

W każdym ciągu z punktów