POLSKI SPOJ

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łowego50000B
Języki programowania:All except: ERL JS

ukryj komentarze
2012-05-15 18:49:27 Kamil Pilarski
Mam zaakceptowane tylko dla g++4.0.0. Co ciekawe na ideone dla C++0x kompiluje się bez problemu, na spoju mam błąd kompilacji. Czyżby kompilatory na ideone i spoju były różne?
2012-03-09 23:42:52 Paweł Mroziński
Łatwe, ale upierdliwe zadanie ;)
2012-02-10 16:23:16 Gabriela Gierasimiuk
polecam kliknąć ctrl+F i wpisać *
nie trzeba czytać zadania, tym bardziej, że treść jest dość skomplikowana ;)
2012-01-24 19:21:28 Kamil Poniatowski
Czyli tutaj wynik jakoś magicznie musi być tablicowany?
2011-10-14 22:00:23 Rafał Kozyra
szczerze szybciej ogarnąłem co tu trzeba zrobić patrząc się na odpowiedzi niż z samego tekstu...
2011-08-06 18:22:04 Filip Gomułkiewicz
Aha, to dobrze :) A tak dokładnie po równo nie musi być przecież nawet ;D Wiadomo, że ciągle dochodzą jakieś nowe, więc niemożliwe jest chyba utrzymać po równą ilość zadań w każdej kategorii.
2011-08-05 12:28:46 Piotr Kąkol
Niedługo dojdzie kilkanaście zadań (większość do średnich) i wtedy się ociąży średnie z łatwiejszych, i wyrówna ilość w średnich i łatwych (oczywiście nie będzie tak dokładnie po równo).
2011-08-04 23:27:26 Filip Gomułkiewicz
Fakt, że zadanie trudne nie jest ale jest chyba więcej zadań w kategorii "średnie", które mogły by tu trafić wcześniej niż "Wiatraczki"

Ostatnio edytowany: 2011-08-04 23:28:36
2011-08-04 12:02:21 Piotr Kąkol
Faktycznie, przeniesione.
2011-08-04 11:10:11 Rafał Walczyna
ja myślę, że mogłoby być w łatwych ;)
takie w sam raz na pobawienie się :p
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.