Jesteś małą plamką na kartezjańskim samolocie. Zastanawiając się nad swoim istnieniem, decydujesz się wędrować po swoim samolocie i dotykać różnych rzeczy. Zauważasz, że każda para współrzędnych, którą odwiedzasz, ma włącznik światła. Aby się bawić, decydujesz się na przełączanie każdego napotkanego przełącznika.
Wyzwanie : stworzyć program, który zajmie wejście losowej długości, przy użyciu tylko znaki v
, ^
, <
, i >
. Te postacie odpowiadają ruchom.
<
przesuwa cię o jedną jednostkę w lewo^
przesuwa cię o jedną jednostkę w górę>
przesuwa cię o jedną jednostkę w prawov
przesuwa cię o jedną jednostkę w dół
Korzystając z tego losowo generowanego sygnału wejściowego, obliczyć, ile przełączników pozostanie w tej ON
pozycji, zakładając, że zaczniesz od (0,0), wszystkie światła zaczynają się w OFF
stanie i nie włączasz żadnych świateł, dopóki nie wykonasz pierwszego ruchu. (Oznacza to, że jeśli zaczniesz od (0,0) i przejdziesz o 1 jednostkę w górę do (0,1), teraz będzie 1 lampka). Jeśli natrafisz na przełącznik, który jest w ON
pozycji, zostanie on obrócony OFF
.
Przypadki testowe:
v>v<^^<v<<^<^><<>^^>>><v>vv^v>v^><><<^>><<<vvv^vvv>v>>v><vv^^<<>vv^^>v^<>>^^<^^>^^v<^>^<vvv^v^v><^<<v<<>><<>v>>^><^>^^<>>>>vv>^<<^<<><vvv<v^>>vvv>v^>>><<v^>^^^^v>>^>^v>v<vv^<>^<<v>vv>><^^<^><vv^^v<v<v^^^>v<^vv^v<><vv^^^>v^>v>vv<<^><v<^v><<v^^v>>v<vv<><^^^v<^v><><<^^<>^>><^^^>vv^<>>>>^<^<<<<>>>v<<v<v<vv><<vv<vv<^v^^^>>vv<>v>><<<v^>vv><v<<<v<<>^vvv^<v^v>^^v^v><<v^>>>v<v<v^>>>v><>>>^<><<<<>vv>v><v>v><^v<>v>>>vv<<>^>^>v<^><^<^vv^><^^>v<^^v>v^v<^^^^vv<>v<>><v^^><>v<<<>v^<v^^><>^<>^<>><>^^<>^v><>>><v<^^>>v>^^^<v
włącza 125 świateł.
>>><^>>>^vv><^^v^<<<>>^<>>^<^>^<<^^v^<v^>>^<<><<>^v<^^^vv>v><^>>^<^<v><^v<^<<^^v><>>^v<^>^v<vvv<<<v^vv>>^vv>^^<>>vv>^<^>vv<>v^<^v<^^<v^^^<<^><><>^v>vvv<^vvv<vv><vv<^^v^^<^^>>><<<>^<>>><^<<<>><>^v><^^vv<>>><^^^<^>>>>v<v^><<>v<v<v^<<^><v^^><>v>^<>^^^vvv<v^>^^^^v>v<v>>>v^^<v<vv>><<>^vv><<vv<<>^^v>>v<^^v>><v<v<<>^^vv>>^v>v>v<>^>^v<>>><>v>v<<v<^<>>>vv>>v>^<>vv^v><><^v^>v<^^>v<^v>>v^>^>>v>v>^>^<^^>vv>>^vv<^><>^><<v^<><<^<^>^^vv^<<^^<^^v<v<>^>v>>>>>>vv<<v>^>vv^>^><^<^^><<vvvv>vvv<><<><v^vv><v^^<>^>><^vv<><>^>vv>>>vv^vv<<^v^^<<v^^>^>vvv<><<v>^>^>v<v>^<^^^^<^>^>><>>^^vv<>v<^>v><v<v^>>v<^v<vv>v^>v<v^<^^^^v<^<^<<v<<<v<v^^>vv^>><<<v>>^^^>^<^>>>v^v><^^vv^>><^^vv<vv<v^><>>^><<<>>^^v^v<<v^<vv^^^>><>>^v^^^>>^>^<<^>v>^^v>><>v>^>vv^^<vvvv<><^v>^><<>>><^<^v^<<vvv^v<<<<<><><<><><<v>v<v>v><^v^^vvv>><>^>^>^v<<vv^^^v^vv><v><><v<v<<>>>v<^<^v<<>^v<<^v<><>v>>^^>^<v^<<^v^^^vv>><v^<v>^v><^<>>>>^^<vv<>^^>^>v^v^^>><>^^<^v^<v<<v<^<<^^vv>v>^<vv<<^^v^vv^>^^<>v>^>^<>vv><v>>><<><<vv^^<vv<>>^v>^<<vv>^><<>^<v>v><<v^<v<><v>^<^<^><^^^^>>>^<>^^><>>v^<vv^<^<<vvvv>>>v^v>>^>v^><<>>v<>>^>><vvvvv<<vvvv<v>^v<vv^<>><<><v^^<^<v>^v<^<<>^v<v^<>v<<>^<<vvv><^><^^^<>>v^<<>vv><^^^>><^>v^v>v<v^>>v>>v>vv<<v<<vvv^^^>^<v^^<^<v<^<>>v^<<v>>v^><v<vvvvv^^^<v^^<><v<<^>>^><^<v^v^^>><v><>v>^<vvvv><<v^^v^>^>v>><>^^v>v^>vv^>v<^<<^vv^>vv^<v>^<v^<>^v>v^>v^<<>^^<^>^^>vv^>>vv>v>vvv><>^v<<<<v^>v^^v<><v<v>^<^><^><<v<>><<>v^^>>><<><>>><<>><v^^>><^>><^<>v^^vvv>v<^<<vv^>vv^><<>v><>^<>v^^v>^>v^<>^><v>^><<^v<v^^<v>><^^>>^<^<^v<v>^>^<^<v><><>>>><>^<^<v>v<v^>v><>v^>v^<<><^<>>v<^vv^^^>^<<<<>^>^<><^vvv>^^<v^v>v>v^v>v>>vv>^><>^vv>^<v<v^<>vv^<v<><>^>>vvv><>>^<<v^<<>^<v^>v<^^^<^<^^<>^>>v>^<v>vv<v^^>><<<<<>>v>^v>^>>>>v>>^^>^<<<^<<<v>>^><<<<^vv<<>^v<^>v^<v<<>v<>^<^<^<^<>>^^^vvv<v>^vv>^><^<v^>^v<v>><><vvv<^^>>v<^v>^>>>><v^<v^^<^^v<vvv<v>^^<<>><^<v^v<^vv>v>vv>^^<>^^^^>>^v><vv<<<v>^v^>>v^>><<<^v^v<<>><<vvvvv<v^vv>vvvv><v^v<^^^><vv^^<>><>><^>^^^^v>v><><v^<>^v<>^^<^^>^^^vvv>>vv^v^<v<vv^v>v>>>^v^^vv^<^v>v^v>>^v>v<v^<^^><vvv>><<>><>><v>v<^<v>>>>v^^v^^>^><<v><^<<>>v<>^^<<>vv^>>vv^^^v>>>^v^><v<<^>v<v><>>>^>>^<<>>^><<vv<^^>^^^v^^<>>>vv><<>v<><<<>v<<>>>v<>v<>^<vv^v<^^<<<v>^v>>^^>^><<^vv<><><>v>^v>^<>v>>^^^<^^>>vv>v<<<v^><<v><^v><>v<^<<^<>^vv>^><^^^^^<<v^^<>v>><^<v^^^vv>^v<>^<v<v>v>^><^<<^<>><^^>vv^<>^<>vv<>>v<vv^>><^^<^>v<><>vv<v<>>v><v^^^>^^^<<vv^><^^v>v>^<^>v^><<vvv>v^><vv<><^<><^>^v<><<v^<<><>^^^^<<^>>^>^v^>v>^<<^>vv^vv^v<>^<<^>v<^^<<v<v<<<^>vv^>><>v>><><v>v><v^><vvv>vv<<vvv>v^<<^v<^<><<^v>v<>>vv<<v^>v>v<<>>^vv^<^^^<^v>>^<vv>^<v>><>v>^^<<v^<>>>>>v^v>><>v^>>^<>>^<^vvv^^^<^v<><vvv^>^>v><<v>>^v>v<v>v^<v>v>^<>vvv>vvv^^<>vv>^^^^^>v<<^v<>>>><<<>>><vv>>^v^^v<v^>>>^>^v<^v>^v<>vv<><vvv^v<<<<v<vv>vv^<^vvv<^v>v^^vv<^>>>^^>>^^><>^>>v<>>>^^<<v<^<<<<<^^<v^^^<<>><<<^>^v^>vv<>>>^^v><<>^^^^<vvv><^^<>>>^><<^>><v>^<>^v^<vvvv^>>^><<>><^<v^>>vv^vv<^>>>><^>^v<^<v<^^<^<^><^<>>^<>v^v<<>v>v<>><<v<^v<<<^v<v<>><v<^<^>>v>v>><v^<v><>>>>>v^v>><^<^<v>><v^v>v<>v<v><<<>^^><>^^<^vv^^<>v><><><^>^^v^vv^<><>>>>v><>>^>^<<^<v<v^>v^^<v>>><<^^vv^^>><<^<vvvvv>><^>^>>^vv<><<>v>v^<<<^v<^^<<^vv>v<vvv><^v>vv^vvvv<^>^v^<<<<^v<<<>^vvv>^v><<>>v<v<^v^<>v>>^^v^vv>>>^v^^>>^<><><<<<^vv>>>>>v>v^>v<>><<<>^vv>^^^^<^^^>^^^^>^^^v^v><^>^>>>v<v<^<^^<<^v<<^<>vvv^^^^v^<<>vv>^^>>><^^v<^<<<v<>v<<><>v<><>^<v<<^>^^>><<v>^^><^^v<^<v^<^^<>^<>^v^>>^^v^v^<>v<>^<<<>^v^v>^<vvvv<>v<<>vv^<<>vv>>>>^<v><>>>v^><<>^v>><<>>^^v><^<>>vv^^^>vv^<^^v><v>>vvv^v<^v>v<<^^<>v^^^v^^>><v^>>v^v^vv<^>v^<^>^>v<v^><vvv^>^<>v<<^><^^<vv>v>>vv>v^>>^vvv>>v^>^^>vvv>>v><<>>^^v>v<v<><<<<^^v<^<>^v>><v^^^<>>vvv>v><<v>^^<^vvvv^v>v>^vv>^vv^^v><<>>^^>>v>>>^v><^>v<^^<>vv>v>v^^^>>^^^><<<<>>^>>^<^v<^<^<>^><v<<v>v<>^>>^<<v^^<v^vvvvv>>v^>>^^^<^^<><<><><>^v>vvv^>^^>v<^^>^<<^v^^^><>><<v<^^^<<<<>><>><<^^v><v^<<^v<v><<>^<v>^>^v>vv>><v^<^<v<v<v><^^^^>>><^<><^v^v<<<^>vv^<v^>^^v^>>><<<<^<>>><v>>>vv^>^^<v^v>>>v^<^<>vv>^v^^><<<v>v>v>><>>>v<^>^<>>^^<v^<<^<v^>><^v^><><v><><v^vvv<<>v>>><<><v>v<>>><^<^^v<v>^<<>^v>^>^>^^<^^><^>>>>><^^>vv>^<^^<><^>^<^^><^<v>v^>><^>^^^>>v^v<^>>^<v^<>^><><v>>^v<v^^^^v<^vv><^v>>^^^<>^<^<^>vv^v<<>vv>^<>v>^>^>vv^v<vv<^^^v<v>v>v^<^^^v><v<<<^^<><^^>>>><<^^v<<^>v<<vv^^^vv^vv^<v><>^v<v>>><vv^v<v^>>>>^<<<vv^>>v>^><<><<^<^><<vv^>v^>><>v^<<<>v^><>><<>>v><>v^<v><>^v>>><><>>>^vvv^v>vv>>>^^v^><<v<>>^^^v^^><<^v<><><v<<v<v<><<<v^<^^^<>v^^v<^^<<^>v<<v><^<<<<>><>^v>^<>^<^^v^vvv>^^<>^>><v^^vv^<>^<><<^^^v<^^^>>^^v>^>^<^>v><<^<>^v<><vv^vv<><<<<<<v<<v<<vv^<<^<^vvvv><v^v^v<>>>vvvvv^<vv^<^<>vv>^<><<v><>v^^<v<>>>vvv^><^<^>v^^<v>^<>>>^^v^<vv<<<<^><v<<<>v<<<v<>>^^^>^><>v>^v^>^<v^^><^v^^<^v^^>^v>>^^^<<><><<<>v>><^><>>>vvvv>v>>v>^^^^v<><vv<^<v^v>>^^vv<^>vvv>^v>>><v<v<v^<^>^^<vvv<vv<v>>^vv>^<<^<^<v>v^<vv^^^v>vv<v><v><v>^<v>>vv<>v>^^>v^^^<>v<>v^v<>^<><v><^>^<v^v><<^v^v^v<<v><<^^<^vv>^<^v><>v>><v^v^>><><><<<v<>v<^vv>v<v<<>^vvvvv^<<<^<vv><<><>v^<^v<<<^>v>v<v^<<^>v<<^<v><<<^>vv>v>^<^^v>>>><>vv>>vv>vvv<>^^<>^v^<>vvv<^^^vv>v><<<<vv^v><v^<^<<<><v<>^><<>^>v<^^<<>v>>v<<>><^^<<<^<^vv^^>v>v<>^^>>^v^vvv>^v^>v>>v>v>v>>vv^<><<<<>v^^>vv<^^v>>v<vv<^>>^<>^^v<><vv^<><v><v<<v^v<^^<^v^v<>v<<><vvv><<<^<^^<<>>^v>>>^v>>>v<>>^><<<><><<<v<vv<^<>v^^v^^>^<<^^^v^>^<<^>^>^>>>>v<v<v<>vv<<vv^<<^<vv>^^<^<<>><^v><><>^<v><v^>^v>^<^>^^><v><<^<v^^<<^><><v>v<>>><<^><v<^vvv^<<<>><<>^v^^><vv>vv<>^>^>vv<>v^<^<>vv><<>^<v<vv<^<^<><^vv<<^>>>v<>><<>>>^^^^<<^v>>v<vv>^^>v<v<vv^><<><>>>v>>^^v<^v^^>>v^<>>v^>><^<^^v<v<><<><>>^<>><^v<^^^^><>^>vv>>^vv<<>v<<<<<<><<<><<>><v><^^^<>>v<^><^vvv<>^>^^v>^<v><^v^vv^<<>v<<<<v>^vv>>v>vv<<^>^<>>vvv^<v<><>><>^^^^vvvvvvv<<>v<^><^^>vv^^<v<<^^<vvv<v<v<<>><<><v^^>><^<>^v^vv<<v<v<>><<>>>>>^vv<><v<>v><v>v>><v<v^vvvvv<><>v>>v<><<<^^<>^<^^<v>v^<vv>^vv^<>^<<^<vv><v<v>>v>^<>v^<<v^<v>^v<>><v>>>>^<<^^^v<^<>><^<><v>>vv^>^<^<^>>v^>^^^^>vvvvv>^v<^><^^<^^>^<^^^^^^^>v>>vv>v^^^v^^^<>v><^>>>v>^>^>^>vv<vv<^^>>^>>>v<>v><<^<<v^>^>>>>^^><^^<v<<<<>>v>v^v^^<>><v<^<<<<v^^^^<v<<<^>v>^^<vv<^^^^^v>^v^<v><>>^^>^v>^>^vv^v>v>v^>v>^>>^^^^>>^>>^><>><v>v>>><<^v^v^>^>^>>vv><<^>v<v<v^<<>>^v<<^v<<^><^>>^<v>^>vv>v>^^^>v^^<^<^^>vv>^^><v>>^v>^v<<^^^<<^v^>^<<^>vv^>>^<^v><<>v><^^^<^^>>vv>^vv>><^<<<^>vv^v>v<^<<<^<^<<><^^>>>v^<^^^>^<><^v>>^<<v<^v>>v^<^<^<^^^<v^><<vvv^<^v^vv^vv<v<<v<^<>^v>^^^<^^v<v<v><<<^<>^^^^v>v^v^v^v<v><v>>^v><vv^^^v>><<v^vvvv<<<^v<<><^>^<v^^v<>vvvv^vv<>^v<><>^^<>>vvv<^>><v^<<>v>v<>^v^>v^>><<>>^^<^v<>>^>^><>>^<v<v^^<^v><v^<v<><><^<<><v^v<<>vv<v<v<^>>><>vv^^<><<v<^^<<^<><^^^>^>>>^<^>>>^>><^^^<^v^^^v^v^v>v>v><vv>><vvv<<v><><^^>^v<v>><v><^><^<<>v^vv^v><^vv>^>>v<vv><^<^^v<^^vv<vv<v<v>v><v<vv<<>^^v^^v<<<^<>v^^^<><>>><^>v^^^v^vv<<<^>>v><^>v^<>>>>^<>^^vvv^^<><^>^^<><>^vvv^^<vv^>vv^^^^v<>vv<^^^v<<>><<vvvvv>v>^^^vv>><v><v<>vvvv<v^><^<>^>^<>v>v>v^vvvv<><^v>>>^^>><vvv<>^>^v^<vvv>v^vv^vv><>><>v^^v^vv<^v>vv>>v<v><^<<^v<>>^vv^<v>v><v>v>^v>^<v>^<<^>vv>v<^<^vv^<^><<<v<<^^vv<vvv><>v>v<vv^<><><^vvv>>vv<^^^v><^v><<^>^^v>^<>><v<>>^^<<<v><>^>^><vvvv<>^<<<><<<^<>>v^vv^>><^vv^^>^<v^<v>><^^>>>^v>^v<>^v<><^><vv>v^^^<^>>^<<^<^><<<^^<v<<^vv<^<>v<^<<^^<v<vv<<><v<v^<>^<>v>>v<^v>v<>^^vvv<>vv^v^<><v^vv^<^v^v><>^><v^<>>^^^<>>vv^<v>^^v><v<^>^^^^^^><>>vvv<<><><v<^>v<>v^v<<<<>v^>>>>^v>^^<v^>v><v^<^^v<<<<v<<<>^v<^>^v>v^^>v^^vvv>vv<>^>v><v<>^<vv><>>><<^>>><<v>v^^<^<<<<v^<>>>v<<<^v^vv<>^v>v<<<<>^^>><v><>v<v><^^>><>^>^>v>>><v>^vvvv<><><^>>^v^><<>^v<><><^><<<>v^^>v>^>v^<v^vv<>><^vv^^>^^><vv<<>v>v^^>><v^>^<^<>>>vv<>^>v>v^<>v<^<<v>>>^<>v^>v>>vv^^<>>v<v<<^<>v>v^<^^^>v^^>v>v>vv<^<v>v^^><<<v<><>^^<>v>v>^^v>v>v^v>>^<v^v>><>^^>^<>>>^vv^><v^<^>v^>^v><^>^^^vv^^v<>vv<>>^><<^v>^v^>>v>^v^<<^^^vv<<vvv>^vv^v<<<v^^<<><vv<>>^^vv>^^^vv>><><v>v<^v^>>>vv^><>><v<^v<>^><v<^^^^>><^<>v>^v<^vv>v>v<^<>v>v>^<vv>v<^>vvv<v^<vv<vv<>v>^><v^v<>>>>>v>><^v<>v>^v><v^v^vv<>^<vvv^>><v^<vvv^^<^vvv^v^<>><v>v^^v<><>v^^^v<<<^><v<<<>><<vv<<><vvv^v>>v^v<v^>>><<v<>^v><>vv<<v>v^vv>v^v<^<vv<><><^v>^<vv>v^^>>^^^><vv<><^>>>^<v^<<^^>^>vv^><v<vvv>^^>>>^><<vv>vv>^<>>^^><^v><<>^<<<v^>^
daje 1408 włączonych świateł.
Aby wygenerować dane wejściowe, możesz użyć następującego skryptu Python:
import random
length = random.randint(15, 10000)
walk = ''
chars = ['v', '<', '>', '^']
for i in range(length):
walk += random.choice(chars)
print(walk)
Standardowa punktacja golfa , zwycięzcą jest najmniejsza liczba bajtów.