W wielowymiarowym świecie parowo-punkowym nasz szef chce przymocować drukowane etykiety indeksowe do każdej szuflady w wielowymiarowej szafce aktowej naszego konglomeratu.
Szef chce napisać cały arkusz etykiet jako pojedynczy formularz, używając czcionki kupionej tylko w tym celu, więc musimy zamówić rodzaje (metalowe symbole). Ponieważ sortowanie jest bardzo drogie, nasze zamówienie musi dotyczyć dokładnej liczby każdego symbolu cyfry.
Dla danego (w jakikolwiek sposób) zestawu długości o wymiarach ≥ 0, zwróć (w jakikolwiek sposób) nasze zamówienie, które jest tabelą częstotliwości cyfr wymaganych do wpisania wszystkich współrzędnych kartezjańskich. Musi być uporządkowany według kolejności wyświetlania na klawiaturze (tj. 0 po 9) i może nie zawierać zamówień 0 sortowań, więc jeśli sortowanie nie ma być wcale (ponieważ wymiar ma długość 0); nic nie drukuj.
- Premia -3 sortuje, czy Twój kod nie obsługuje (tzn. Nic nie drukuje) również 0 wymiarów.
- Końcowe znaki nowej linii są dopuszczalne.
- Obowiązuje zakaz standardowych luk.
- Jak wspomniano, rodzaje są drogie, dlatego jest to kodesz .
Życzliwa dusza może edytować to wyzwanie w celu włączenia automatycznej punktacji, dlatego dołącz nagłówek:# LanguageName, 123 sorts
Przypadki testowe
Biorąc pod uwagę 11
, wydrukuj:
1 4
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
0 1
ponieważ potrzebne są etykiety 1
, 2
, 3
, 4
, 5
, 6
, 7
, 8
, 9
, 10
, i 11
.
Biorąc pod uwagę 2 3
, wydrukuj:
1 5
2 5
3 2
ponieważ potrzebne są etykiety 1 1
, 1 2
, 1 3
, 2 1
, 2 2
, i 2 3
.
Biorąc pod uwagę 2 0
, wydrukuj pustą linię:
lub nic.
Biorąc pod uwagę 1 2 3
, wydrukuj:
1 11
2 5
3 2
ponieważ potrzebne są etykiety 1 1 1
, 1 1 2
, 1 1 3
, 1 2 1
, 1 2 2
, i1 2 3
Biorąc pod uwagę 5 5 5 5
, wydrukuj:
1 500
2 500
3 500
4 500
5 500
I nie, nie wymienię wszystkich 625 etykiet.
Odpowiedzi:
Dyalog APL,
107Kod ma długość 10 bajtów i kwalifikuje się do otrzymania premii.
Podziękowania dla user46915 za 3 bajty!
Zauważ, że
⎕
(wejście) nie działa na TryAPL; możesz wypróbować tutaj formularz funkcji .Nie do końca rozumiem
⌸
operatora, ale{⍺}⌸
wymienia przyjęte unikalne wartości i{⍵}⌸
podaje ich miejsca w argumencie.Ma to prawidłową kolejność, ponieważ jest to kolejność, w jakiej cyfry pojawiają się w wielowymiarowej tablicy etykiet.
źródło
⌸
głównego operatora.,∘≢⌸
bez żadnych produktów zewnętrznych z wyjątkowymi i takimi ?! Dyalog z pewnością jest niesamowity.,∘≢⌸
Jest także krótszy niż{⍺,≢⍵}⌸
.Mathematica, 48 bajtów - 3 = 45
źródło
Mathematica,
11185 bajtówWiększość pracy tutaj wykonuje
DigitCount
.źródło
Grid[Thread@{Range@10~Mod~10,DigitCount@Tuples@Range@#~Total~2}~DeleteCases~{_,0}]&
R, 110 bajtów
Zapisane 4 dzięki Alex A. (dzięki!)
źródło
x
raz, więc należy po prostu być w stanie zastąpić jedno wystąpieniex
zscan()
. Również po co przypisywaćz
?x
. Przypisałem wyjście zmiennejMap
do, wz
przeciwnymMap
razie wydrukowałoby wyjście na standardowe wyjście. Lepszą praktyką byłoby owinięcie się wMap
środku,invisible()
ale to dużo postaci ...Rubin, 92 bajty
Traktuje długości jako argumenty wiersza poleceń:
źródło
CJam, 31 bajtów
Wypróbuj online
Kod ma 34 bajty i wymaga 3 bajtów premii za pracę z pustą listą wejściową. Dane wejściowe to lista w formacie CJam, np .:
Wyjaśnienie:
źródło
Pyth, 15 bajtów
źródło
Haskell, 125 bajtów
źródło