introduction
Vous avez récemment accepté une offre d'emploi dans une très bonne société de logiciels. Vous êtes plutôt satisfait de la taille de votre bureau, mais avez-vous le plus grand bureau? C'est un peu difficile à dire de simplement regarder les bureaux de vos collègues lorsque vous vous arrêtez. La seule façon de comprendre cela est d'examiner les plans du bâtiment ...
Ta tâche
Écrivez un programme, un script ou une fonction qui prend un plan d'étage pour votre bâtiment et indique si votre bureau est le plus grand. Le plan d'étage est facile à lire car le bâtiment est un carré n par n .
L'entrée consistera en n + 1 \n
lignes délimitées. La première ligne aura le numéro n dessus. Les n lignes suivantes seront le plan d'étage du bâtiment. Un exemple simple d'entrée:
6
......
. . .
.X . .
. . .
. . .
......
Les règles du plan d'étage sont les suivantes:
.
(ASCII 46) Sera utilisé pour représenter les murs.(Espace [ASCII 32]) sera utilisé pour représenter un espace ouvert.
- Vous êtes représenté par un
X
(ASCII 88). Vous êtes dans votre bureau. - Le plan d' étage sera n lignes, chacun avec n caractères.
- Le bâtiment est totalement entouré de murs de tous les côtés. Cela implique que la 2e ligne d'entrée (la première ligne du plan d'étage) et la dernière ligne d'entrée seront toutes
.
s. Cela implique également que les premier et dernier caractères de chaque ligne de plan d'étage seront.
s. - Une taille de bureau est définie comme la somme des espaces adjacents (contigus en se déplaçant dans 4 directions, N, S, E, W, sans passer par un mur).
- Aux fins de la taille du bureau, le X qui vous représente compte comme
(espace ouvert)
- 4 <= n <= 80
Vous devez indiquer si votre bureau est strictement plus grand que tous les autres bureaux. La sortie peut être tout ce qui signifie sans ambiguïté True ou False dans le langage de programmation de votre choix et adhère aux conventions standard de zéro, null et vide signifiant False. Vrai implique que votre bureau est strictement le plus grand.
Exemple de sortie pour l'entrée ci-dessus:
1
Parce que votre bureau est de 8 pieds carrés, et le seul autre bureau est de 4 pieds carrés.
Consignes d'E / S
- L'entrée peut être lue à partir de stdin et répondre à stdout.
Ou
- L'entrée peut être un argument de chaîne unique pour une fonction, et la réponse doit être la valeur de retour de cette fonction.
FAQ
- L'ensemble du bâtiment se compose de murs et de bureaux.
- Le bâtiment est d'un seul étage
- Il est garanti qu'il y ait un X dans l'entrée, mais il n'y a pas de garantie qu'il y ait des espaces. Vous pourriez avoir un bureau 1x1 et le reste du bâtiment est des murs (vous avez le plus grand bureau! Hourra!).
Autre exemple
10
..........
. . . .
. . . .
. . . .
. .. . .
.. .
..........
. X .
. .
..........
Ici, il y a 3 bureaux, votre bureau sud est rectangulaire, le bureau nord-ouest est un triangle (ish) et le bureau nord-est est étrangement déformé, mais plus grand que le vôtre. La sortie doit être False.
C'est un défi d'écrire le code le plus court, joyeux golf de code !
X
autorisé dans l'entrée. :)