|
|
Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language
version or invalid test data, or description of the problem is not clear.
Zadanie w systemie SPOJ (latwe)
806. Wiatraczki
Kod zadania: FANGEN
|
Wiatraczek (lewo- lub prawoskrętny) rzędu n >= 1 jest macierzą znaków o
rozmiarze 2n x 2n. Każdy element wiatraczka jest albo kropką ('.'),
albo gwiazdką ('*'). Wiatraczki definiujemy rekurencyjnie:
- Wszystkie (cztery) elementy wiatraczka rzędu 1 są gwiazdkami, niezależnie od jego skrętności:
**
**
- Dla n >= 1, wiatraczek rzędu n + 1 konstruujemy następująco (przykłady ilustrują kolejne kroki konstruowania
lewo- i prawoskrętnego wiatraczka o rozmiarze 2, '?' - znak do ustalenia):
- W macierz wklejamy wycentrowany w pionie i w poziomie wiatraczek rzędu n o tej samej skrętności:
???? ????
?**? ?**?
?**? ?**?
???? ????
- We wszystkie narożniki nowego wiatraczka wstawiamy gwiazdki:
*??* *??*
?**? ?**?
?**? ?**?
*??* *??*
- Odwiedzamy kolejno wszystkie nie ustalone jeszcze znaki (jest ich dokładnie 8n), startując z dowolnego narożnika
i poruszając się wzdłuż brzegu macierzy. Jeśli konstruujemy wiatraczek prawoskrętny, poruszamy się zgodnie
z ruchem wskazówek zegara; jeśli lewoskrętny - przeciwnie. Wzdłuż każdej mijanej krawędzi stawiamy
n kolejnych gwiazdek, a następnie n kolejnych kropek:
*.** **.*
***. .***
.*** ***.
**.* *.**
Twój program powinien wcztywać kolejne liczby całkowite. Dla każdej wczytanej liczby r:
- jeśli r > 0, generujemy wiatraczek lewoskrętny rzędu r, a następnie pusty wiersz,
- jeśli r < 0, generujemy wiatraczek prawoskrętny rzędu -r, a następnie pusty wiersz,
- r = 0 oznacza koniec wejścia, program powinien się zakończyć (wczytanego zera nie przetwarzamy).
Wejście
r1 [ -200 <= r1 <= 200, r1 <> 0; pierwsza liczba do przetworzenia ]
...
ri [ j.w.; i-ta liczba do przetworzenia ]
0
[ można założyć, że przynajmniej pierwsza wartość będzie niezerowa, tj. że i >= 1 ]
Wyjście
[ wiatraczek wygenerowany dla r1 - dokładnie 2|r1| wierszy tekstu, w każdym wierszu dokładnie 2|r1| znaków (nie licząc '\n') ]
[ pusty wiersz ]
...
[ wiatraczek wygenerowany dla ri ]
[ pusty wiersz ]
Przykład
Wejście:
3
-4
0
Wyjście:
*..***
**.**.
****..
..****
.**.**
***..*
****...*
.***..**
..**.***
...*****
*****...
***.**..
**..***.
*...****
| Dodane przez: | [rusty] jb |
| Data dodania: | 2006-04-12 |
| Limit czasu wykonania programu: | 1s
|
| Limit długości kodu źródłowego | 50000B |
| Języki programowania: | All except: ERL JS |
|
|
|
|