Co jeśli mamy korytarz złożony z dwóch równoległych lusterek?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Teraz świecimy laserem ...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
O popatrz. Tam odbiło się pod koniec.
Co jeśli narysujemy dwa lasery, ALE idąc w przeciwnym kierunku?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
Hmm, tam chyba się nie spotkali. To wygodne. Co się stanie, jeśli oba lasery zajmą tę samą przestrzeń?
| \ / |
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ |
| / \|
|/ /|
|\ / |
Myślę, że to było dość oczywiste, co?
Ręczne rysowanie tych diagramów jest dość pracochłonne (zaufaj mi w tym). Być może jakiś kod mógłby to dla nas zrobić?
- Napisz kod, aby wyprowadzić dwa równoległe zwierciadła z dwoma odbijającymi się, przecinającymi się laserami.
- Dane wejściowe (wszystkie liczby całkowite):
- Szerokość korytarza
- Długość korytarza
- Pozycja początkowa prostopadłego lasera (indeksowana od zera, musi być mniejsza niż szerokość)
- Pozycja początkowa lasera lewostronnego (indeksowany od zera, musi być mniejsza niż szerokość)
- Proces
- Jeśli laser leci prawidłowo, zostanie narysowany o jedno pole w prawo na następnej linii.
- Jeśli laser pozostanie w ruchu, zostanie narysowany o jedno miejsce w lewo w poniższej linii.
- Jeśli laser nie może wykonać kroku w bok, zmieni kierunek, ale nie pozycję.
- Jeśli oba lasery mają ten sam indeks, wydrukuj wielką literę X przy tym indeksie.
- Wynik
- Ciąg z wieloma liniami
- Każda linia zaczyna się i kończy znakiem kreski (|)
- Prawy laser jest oznaczony odwrotnym ukośnikiem (\)
- Lewy laser jest oznaczony ukośnikiem (/)
- Przecięcie dwóch laserów jest oznaczone wielką literą X.
- Dowolny język
- Chciałbym zobaczyć linki do TIO
- Spróbuj naprawić go w jak najmniejszej liczbie bajtów
Przypadki testowe
szerokość: 6 długość: 10 w prawo: 1 w lewo: 4
| \ / |
| \/ |
| /\ |
| / \ |
|/ \|
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
szerokość: 6 długość: 10 w prawo: 0 w lewo: 1
|\/ |
|/\ |
|\ \ |
| \ \ |
| \ \ |
| \ \|
| \/|
| /\|
| / /|
| / / |
szerokość: 4 długość: 10 w prawo: 2 w lewo: 0
|/ \ |
|\ \|
| \ /|
| X |
| / \|
|/ /|
|\ / |
| X |
|/ \ |
|\ \|
szerokość: 20 długość: 5 w prawo: 5 w lewo: 15
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
szerokość: 5 długość: 6 w prawo: 2 w lewo: 2
| X |
| / \ |
|/ \|
|\ /|
| \ / |
| X |
szerokość: 1 długość: 2 w prawo: 0 w lewo: 0
|X|
|X|