Coś jest nie tak z klawiaturą. ShiftKlucz ma własny rozum. Za każdym razem, gdy wpisujesz znak, nie masz pojęcia, czy wyjdzie on przesunięty, czy nie (chociaż jest to 50-50). Oprócz standardowych klawiszy znaków nic na klawiaturze nie działa. Nie ma myszy ani innych środków wprowadzania.
W jakiś sposób wiesz, że jedynym sposobem na naprawienie tego jest napisanie programu, który wypisuje Dear Computer, please stop giving me shift!
na standardowe wyjście. Na szczęście twoje IDE jest otwarte i możesz uruchomić program, ale oczywiście podczas pisania nie będziesz wiedział, które znaki zostaną przesunięte.
Jakiej sekwencji naciśnięć klawiszy użyłbyś do napisania programu, który ma najlepszą możliwą szansę pracy przy pierwszej próbie?
Detale
Używasz standardowej klawiatury QWERTY , więc możesz nacisnąć 50 znaków.
Wersje bez zmian (tylko 47):
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Wersje przesunięte (tylko 47):
~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
Ostatnie 3 klawisze to Enter, Tabi Space, które są takie same, przesunięte i nie przesunięte.
Sekwencja N tych znaków ma 2 N - (liczba znaków białych znaków), które można by uzyskać, gdybyś wpisał je za pomocą wadliwej klawiatury. Na przykład pisanie A Space mmogło dać wynik
a m
lub A m
lub a M
lub A M
.
Napisz program o tych znakach i spójrz na wszystkie 2 N - (liczba białych znaków) możliwych kombinacji przesunięć. Im więcej kombinacji, Dear Computer, please stop giving me shift!
tym lepiej. Twój wynik to liczba działających kombinacji (prawidłowe programy) podzielona przez całkowitą liczbę kombinacji. Najwyższy wynik wygrywa.
Notatki
- W przypadku prawidłowych programów drukowanie tylko
Dear Computer, please stop giving me shift!
i wyłącznie na standardowe wyjście powinno być jedynym efektem ubocznym. - Prawidłowe programy nie powinny pobierać danych wejściowych.
- Nieprawidłowe programy mogą zrobić wszystko.
- Komentarze mogą być używane w dowolnym miejscu.
- Odpowiedzi na spacje nie mogą wygrać, ponieważ uzyskanie 100% wyniku jest (względnie) trywialne. Nadal możesz przesłać rozwiązanie Whitespace dla zabawy.
- Twój program musi mieć maksymalnie 1024 znaki.
Aktualizacja: zmieniono, Stop giving me shift!
aby Dear Computer, please stop giving me shift!
pozwolić na bardziej złożone odpowiedzi. W razie potrzeby istniejące odpowiedzi mogą pozostać takie, jakie są.