아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Kocka

시간 제한1.5초메모리 제한1024 MB

요약
N x N x N 정육면체의 단위 정육면체 색을 관리하며, 회전 시 각 화면 위치에서 처음 보이는 색을 N x N 표로 출력한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현, 행렬
정답자
아직 제출이 없습니다

문제

Zamisli kocku. Kocku dimenzije NN koja se sastoji od N×N×NN \times N \times N jediničnih kockica. Svaka jedinična kockica u kocki je u početku bezbojna tj. prozirna i vidi se kroz nju, a tijekom vremena na naš zahtjev cijela može promijeniti boju.

Zamisli da ta kocka stoji na staklenoj rotirajućoj podlozi. Znamo da kocka ima šest strana: prednju, stražnju, lijevu, desnu, gornju i donju. U početku, prednja strana kocke je okrenuta prema tebi, stoji u razini očiju i gledaš u nju. Kroz prozirne kockice vidi se sve do prve obojene kockice.

E sada, neka je dano QQ upita, a ii-ti od njih je jednog od sljedećeg oblika:

  • 11 X_iX\_i Y_iY\_i Z_iZ\_i C_iC\_i - jedinična kockica koja se nalazi u X_iX\_i-tom redu (brojeći od gornje strane prema donjoj), Y_iY\_i-tom stupcu (brojeći od lijeve strane prema desnoj) i na dubini Z_iZ\_i (brojeći od prednje strane prema stražnjoj) poprima boju C_iC\_i. Pazi, kocka je okrenuta prednjom stranom prema tebi.
  • 22 S_iS\_i - zarotiraj kocku tako da strana S_iS\_i dođe na prednju stranu (ispred tvojih očiju) te ispiši tablicu dimenzija N×NN \times N boja koje sada vidiš. Ako se na nekom mjestu u potpunosti vidi kroz kocku, za to mjesto ispiši 00. Vrati kocku u početni položaj, tj. da je prednja strana opet okrenuta prema tebi.

입력

U prvom su retku prirodni brojevi NN i QQ (2≤N≤1002 ≤ N ≤ 100, 1≤Q≤2,0001 ≤ Q ≤ 2\\,000), brojevi iz teksta zadatka.

U ii-tom od sljedećih QQ redaka nalazi se po jedan upit prve ili druge vrste.

  • ako je prvi broj u upitu 11, onda su u tom upitu još prirodni brojevi X_iX\_i Y_iY\_i Z_iZ\_i C_iC\_i (1≤X_i≤N1 ≤ X\_i ≤ N, 1≤Y_i≤N1 ≤ Y\_i ≤ N, 1≤Z_i≤N1 ≤ Z\_i ≤ N, 1≤C_i≤1,000,000,0001 ≤ C\_i ≤ 1\\,000\\,000\\,000), iz teksta zadatka;
  • ako je prvi broj u upitu 22 onda u tom upitu još dolazi niz znakova S_iS\_i (S_iS\_i bit će jedna od sljedećih riječi: “prednja”, “straznja”, “lijeva”, “desna” i označava stranu koju treba zarotirati pred sebe, tamo gdje je do tada bila prednja), iz teksta zadatka.

출력

Za svaki upit druge vrste ispiši tablicu veličine N×NN \times N, odgovor na taj upit.

힌트

Opis prvog probnog primjera

Na početku su sve kockice u kocki veličine 2×2×22 \times 2 \times 2 bezbojne. Prvi upit: ispiši izgled prednje strane kocke. Rotacija nije potrebna jer je ta strane već okrenuta prema nama. Kako je cijela kocka prozirna, odgovor na prvi upit je tablica 2×22 \times 2 popunjena nulama.

Nakon toga dolaze dva upita gdje kockica u gornjem lijevom prednjem kutu poprima boju 11, a kockica u donjem desnom stražnjem kutu boju 55. Nakon toga dolaze dva upita od kojih prvi traži izgled kocke kada okrenemo stražnju stranu ispred nas, a drugi kada okrenemo desnu stranu ispred nas. U prvom slučaju kockica obojena bojom 11 će se nalaziti u gornjem desnom kutu, a kockica boje 55 u donjem lijevom. U drugom slučaju bit će isto kao i pogled od naprijed.

Opis drugog probnog primjera:

U ovom primjeru imamo kocku veličine 3×3×33 \times 3 \times 3 te na početku mijenjamo boje svih kockica u drugom redu na dubini dva. Gledajući s lijeva, vidjet ćemo samo onu kockicu boje 11, a gledajući s desna onu boje 33.

예제3

  1. 예제 1

    입력
    2 5
    2 prednja
    1 1 1 1 1
    1 2 2 2 5
    2 straznja
    2 desna
    
    예상 출력
    0 0
    0 0
    0 1
    5 0
    1 0
    0 5
    
  2. 예제 2

    입력
    3 5
    1 2 1 2 1
    1 2 2 2 2
    1 2 3 2 3
    2 lijeva
    2 desna
    
    예상 출력
    0 0 0
    0 1 0
    0 0 0
    0 0 0
    0 3 0
    0 0 0
    
  3. 예제 3

    입력
    2 6
    1 2 1 2 1
    1 1 1 1 3
    1 2 1 2 2
    1 1 1 2 4
    2 prednja
    2 straznja
    
    예상 출력
    3 0
    2 0
    0 4
    0 2