Lego Torpaq#6847

Lego Torpaq

1 saniyə
64 meqabayt
Çətin

Şəkil 1: Lego şəhər mərkəzinin VR görünüşü

Lego şəhər mühəndisi olaraq, rəqiblərinizə qarşı hər cür texnoloji üstünlük əldə etmək çox vacibdir. Son zamanlarda virtual reallıq texnologiyasının mühəndislər arasında nə qədər populyar olduğunu gördünüz və sərmayəçiləri cəlb etmək üçün buna bənzər bir şeyə sahib olmaq istəyirsiniz. Xoşbəxtlikdən, Lego şəhər mərkəzinin VR görünüşü çox sadədir. Əvvəlcə yalnız binaları göstərməlisiniz və tikmək istədiyiniz bütün binaların hündürlüyünü və yerlərini artıq bilirsiniz. İkincisi, Lego VR yalnız şəhərin kub şəklində bir hissəsinin görünüşünü təqdim edə bilir. Bu, kubu onun üzlərindən birini ehtiva edən təyyarələrdən birinə proyeksiya etməklə edilir. Lego mühəndisləri kub şəklindəki şəhər hissəsini mərkəzindən keçən X, Y və ya Z oxları ətrafında 90 dərəcə fırladaraq görünüşü nəzərdən keçirə bilərlər.

Siz Lego VR proqramı yazmalısınız ki, bu proqram giriş olaraq şəhər mərkəzinin N×N matrisi görünüşünü və bir sıra fırlatma əmrlərini qəbul edəcək və nəticədə eyni şəhər mərkəzinin N×N matrisi görünüşünü həmin perspektivdən çıxaracaq. N×N giriş matrisi Lego şəhər mərkəzinin N×N×N kubunun yuxarıdan görünüşünü təmsil edəcək (kubun bir üzü yer səviyyəsindədir).

Giriş matrisindəki hər bir rəqəm müvafiq yerdəki binanın hündürlüyünü göstərir. Məsələn, 0 heç bir binanın olmadığını göstərir, 3 isə 3 mərtəbəli (Legos) bir binanı göstərir. Qeyd edək ki, ilkin yuxarıdan görünüşdə heç bir gizli açıq sahə yoxdur. Başqa sözlə, binalar möhkəmdir. Həmçinin qeyd edək ki, görünüşdə yalnız binalar təmsil olunur, yer deyil. Görünüşdə binanın bloku olmayan hər hansı bir bölgə 0 dəyərinə malik olacaq.

Giriş

Giriş üç bölmədən ibarət olan ən azı bir dəstədən ibarətdir:

  1. Şəbəkə ölçüsü — Binaların təmsil olunduğu kubun ölçüsünü təmsil edən tək bir tam ədəd N (1 ≤ N ≤ 9) olan tək bir sətir.

  2. Bina hündürlükləri — 0 ilə N (daxil) arasında tam ədədlərdən ibarət N×N array. Arrayın hər bir sətri öz giriş sətirində verilir və array elementləri ayrılmır. Bu ilkin N×N array Lego binalarının N×N möhkəm strukturlarının yuxarıdan görünüşünü təmsil edir, hər bir rəqəm müvafiq yerdəki binanın hündürlüyünü göstərir. 0 hündürlüyü verilən yerdə heç bir Lego olmadığını göstərir.

  3. Lego olan N×N×N kubun mərkəzi ətrafında bir sıra fırlatma əmrləri, bunlardan biri:

    • "X" — cari görünüşdə üfüqi ox ətrafında fırlanır. Kub elə fırlanır ki, cari görünüşdə kubun yuxarıda olan üzü irəli hərəkət edərək yeni görünüş üzü olur.

    • "Y" — cari görünüşdə şaquli ox ətrafında fırlanır. Kub elə fırlanır ki, cari görünüşdə kubun solunda olan üzü irəli hərəkət edərək yeni görünüş üzü olur.

    • "Z" — cari görünüşdə baxış oxu ətrafında fırlanır. Görünüş üzü dəyişmir, lakin 90 dərəcə əks istiqamətdə fırlanır.

Bu əmrlər ən çox 80 əmrdən ibarət olan tək bir qırılmamış sətirdir.

Hər iki giriş məlumat dəsti arasında dəqiq bir boş sətir var. İlk giriş dəstindən əvvəl və son giriş dəstindən sonra heç bir boş sətir olmayacaq.

Heç bir etibarsız giriş təmin edilməyəcək.

Çıxış

Hər bir giriş halı üçün çıxış, hər bir giriş arrayı və onunla əlaqəli fırlatmalar dəsti üçün son görünüşü təmsil edən 0 ilə N (daxil) arasında rəqəmlərdən ibarət N×N arraydan ibarətdir. Çıxış arrayları dəqiq bir boş sətirlə ayrılmalıdır və son çıxış arrayının son rəqəminin ardınca heç bir boşluq olmamalıdır. Eyni şəkildə, ilk çıxış arrayının ilk rəqəmi çıxışda ilk simvol olmalıdır.

Heç bir əlavə çıxış çap edilməməlidir.

Bu proqram əsasən 3 ölçülü obyektlərin görünüşlərini yaratdığı üçün, bu görünüşlərin necə hesablandığını çox dəqiq təsvir etmək yaxşıdır. Yuxarıdakı şəkildə baxaraq, kubun altı tərəfi olduğunu, üst, sol, alt və sağ tərəflərin etiketləndiyini qeyd edin. Ön tərəf kubun baxışçısına ən yaxın olan tərəfdir və arxa tərəf baxışçıdan ən uzaq olan tərəfdir. İlkin giriş görünüşü Lego şəhərini yuxarıdan təmsil etmək üçündür. Hər bir rəqəm həmin yerdəki binanın hündürlüyünü (və ya müvafiq olaraq, həmin sətir və sütundakı hər hansı bir Lego parçası üçün kubun arxa tərəfindən maksimum məsafəni) təmsil edir. Kub fırladıldıqda, rəqəmlər artıq binaların hündürlüyünü göstərmir, çünki görünüş artıq (mütləq) yuxarıdan görünüş deyil. Bunun əvəzinə, rəqəmlər kubun həmin sətir və sütununda baxışçıya ən yaxın olan Legoları təmsil etməyə davam edir və buna görə də baxışçıya görünən Legoları təmsil edir.

Nümunələr

Nümunə 1

Loading
Loading