E se avessimo un corridoio composto da due specchi paralleli?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Ora, illuminiamo un laser ...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
Oh guarda. Rimbalzò, verso la fine, lì.
E se disegnassimo due laser MA andando nella direzione opposta?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
Hmm, non sembravano incontrarsi lì. È conveniente. Cosa succede se entrambi i laser occupano lo stesso spazio?
| \ / |
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ |
| / \|
|/ /|
|\ / |
Immagino fosse abbastanza ovvio, eh?
Disegnare questi diagrammi a mano è piuttosto laborioso (fidati di me su questo). Forse un po 'di codice potrebbe farlo per noi?
- Scrivi del codice per generare due specchi paralleli, con due laser rimbalzanti che si intersecano.
- Input (tutti i numeri interi):
- La larghezza del corridoio
- La lunghezza del corridoio
- Posizione iniziale del laser a destra (a zero, deve essere inferiore alla larghezza)
- Posizione iniziale del laser a sinistra (a zero, deve essere inferiore alla larghezza)
- Processi
- Se un laser procede correttamente, verrà disegnato uno spazio a destra sulla riga seguente.
- Se un laser viene lasciato acceso, verrà disegnato uno spazio a sinistra sulla riga seguente.
- Se un laser non può fare il suo passo di lato, cambierà la sua direzione, ma non la sua posizione.
- Se entrambi i laser si trovano sullo stesso indice, stampare una X maiuscola su quell'indice.
- Produzione
- Una stringa con più righe
- Ogni riga inizia e termina con un carattere pipe (|)
- Il laser a destra è indicato da una barra rovesciata (\)
- Il laser a sinistra è indicato da una barra (/)
- L'intersezione di due laser è indicata da una X maiuscola.
- Qualunque lingua
- Mi piacerebbe vedere i link TIO
- Tentare di risolverlo nel minor numero di byte
Casi test
larghezza: 6 lunghezza: 10 a destra: 1 a sinistra: 4
| \ / |
| \/ |
| /\ |
| / \ |
|/ \|
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
larghezza: 6 lunghezza: 10 a destra: 0 a sinistra: 1
|\/ |
|/\ |
|\ \ |
| \ \ |
| \ \ |
| \ \|
| \/|
| /\|
| / /|
| / / |
larghezza: 4 lunghezza: 10 a destra: 2 a sinistra: 0
|/ \ |
|\ \|
| \ /|
| X |
| / \|
|/ /|
|\ / |
| X |
|/ \ |
|\ \|
larghezza: 20 lunghezza: 5 a destra: 5 a sinistra: 15
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
larghezza: 5 lunghezza: 6 a destra: 2 a sinistra: 2
| X |
| / \ |
|/ \|
|\ /|
| \ / |
| X |
larghezza: 1 lunghezza: 2 a destra: 0 a sinistra: 0
|X|
|X|