Każda liczba może być reprezentowana za pomocą nieskończenie długiej sekwencji pozostałych. Na przykład, jeśli weźmiemy liczbę 7 i wykonamy 7mod2
, to 7mod3
wtedy 7mod4
, i tak dalej, otrzymamy 1,1,3,2,1,0,7,7,7,7,....
.
Potrzebujemy jednak możliwie najkrótszego podsekwencji reszty, która wciąż może być użyta do odróżnienia jej od wszystkich niższych liczb. Ponowne użycie 7 [1,1,3]
jest najkrótszym podsekwencją, ponieważ wszystkie poprzednie podsekwencje nie zaczynają się od [1,1,3]
:
0: 0,0,0,0...
1: 1,1,1,1...
2: 0,2,2,2...
3: 1,0,3,3...
4: 0,1,0,4...
5: 1,2,1,0...
6: 0,0,2,1...
Zauważ, że [1,1]
to nie działa na reprezentację 7, ponieważ może być również użyte do reprezentacji 1. Jednak powinieneś [1]
otrzymać dane wyjściowe z wejściem 1.
Wejście wyjście
Twoje dane wejściowe są nieujemną liczbą całkowitą. Musisz wygenerować sekwencję lub listę sekwencji reszt o minimalnej długości, jak zdefiniowano powyżej.
Przypadki testowe:
0: 0
1: 1
2: 0,2
3: 1,0
4: 0,1
5: 1,2
6: 0,0,2
7: 1,1,3
8: 0,2,0
9: 1,0,1
10: 0,1,2
11: 1,2,3
12: 0,0,0,2
30: 0,0,2,0
42: 0,0,2,2
59: 1,2,3,4
60: 0,0,0,0,0,4
257: 1,2,1,2,5,5
566: 0,2,2,1,2,6,6
1000: 0,1,0,0,4,6,0,1
9998: 0,2,2,3,2,2,6,8,8,10
9999: 1,0,3,4,3,3,7,0,9,0
Oto pierwsze 10 000 sekwencji , jeśli jesteś zainteresowany (numery linii są wyłączone o 1).
Jest to gra w golfa kodowego , dlatego postaraj się , aby była ona jak najkrótsza w swoim ulubionym języku. Fałszywe punkty bonusowe za szybkie odpowiedzi!