Defenestration ist der Akt, jemanden oder etwas aus einem Fenster zu werfen.
- Wikipedia
Eingang
Die Eingabe besteht aus zwei Teilen:
Ein Grundriss und eine Person im Haus / Gebäude.
v><^Stellt eine Person dar, die in die durch den Pfeil angegebene Richtung zeigt. Die Eingabe enthält genau eine Person.-und|repräsentieren Wände und#repräsentiert ein Fenster.ist leerer Raum.
Dieser Teil der Eingabe kann entweder als einzelne Zeichenfolge oder als Array / Liste / etc. von Linien. Es wird niemals nachgestellte oder führende Leerzeichen geben, und die Eingabe wird immer ein Rechteck sein.
Beispiel:
-----###--- | | | ^ | -----------Eine Ganzzahl ≥ 1, die angibt, wie weit (in Zeichen) sich die Person bewegt.
Ausgabe
Die Ausgabe sollte sein
1Wenn die Person "innerhalb" eines Fensters landet (dh nachdem sie sich um die in der Eingabe angegebene Distanz vorwärts bewegt hat, befindet sich die Person über a#).2wenn die Person defenestriert wurde (mit a in Kontakt kommen#und dann weiter machen).3Wenn die Person eine Wand berührt hat (mit einem-oder in Kontakt kommen|. Sobald sie die Wand berührt, stoppt die Person und fährt nicht weiter durch sie hindurch).0wenn keine der oben genannten Aussagen zutrifft (und alles, was die Person getan hat, ist, durch den leeren Raum zu reisen).
Annahmen
Es kann davon ausgegangen werden, dass Folgendes zutrifft:
Die Person wird niemals "außerhalb der Grenzen" des Eingabebereichs reisen.
Nach der Defenestrierung kommt die Person nie mehr mit einer anderen Person
#oder einem-/ in Kontakt|(Sie müssen sich also keine Gedanken darüber machen, ob2und /1oder ob3beide wahr sind).
Testfälle
Für folgenden "Grundriss":
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Für diesen Grundriss:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Für diesen Grundriss:
||####|#|#|##|<
In Out
any 3
Letzter Testfall:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
Has someone been for-sparta'd?