polen

Time limit: 0.9s Memory limit: 128MB Input: polen.in Output: polen.out

În Grădina Botanică Regală „Etherea", cercetătorii studiază o specie rară de cireș japonez, numită Sakura Tennyo. Grădina este reprezentată printr-o matrice cu NN linii și MM coloane, în care fiecare celulă corespunde unei parcele de pământ. Inițial, toate parcelele au fertilitatea 00.

În grădină au loc, pe rând, QQ înfloriri. O înflorire din celula (r,c)(r, c), având puterea KK, eliberează polen care, purtat de curenții de aer, se poate răspândi în cel mult 4 zone triunghiulare. Existența acestor curenți este indicată de o cheieeoliană formată din 4 semnale, numerotate 00, 11, 22 și 33.

Pentru o înflorire, curentul apare doar dacă semnalul corespunzător este activ.

Valoarea cheie codifică semnalele active ca o mască de biți. Semnalul bb este activ dacă și numai dacă bitul bb din cheie este 11, pentru b{0,1,2,3}b \in \{0, 1, 2, 3\}. De exemplu, cheia 55 are reprezentarea binară 010120101_2, deci sunt active semnalele 00 și 22. Curenții corespunzători celor 4 semnale sunt definiți astfel:

Semnal Punct Cardinal Interval Linii (ii) Interval Coloane pe linia ii
00 Nord-Est [rK,r][r - K, r] [c,c+(i(rK))][c, c + (i - (r - K))]
11 Sud-Vest [r,r+K][r, r + K] [c(r+Ki),c][c - (r + K - i), c]
22 Nord-Vest [rK,r][r - K, r] [c(i(rK)),c][c - (i - (r - K)), c]
33 Sud-Est [r,r+K][r, r + K] [c,c+(r+Ki)][c, c + (r + K - i)]

Fiecare celulă atinsă de polenul unui cireș își crește fertilitatea cu valval. Unii cireși produc polen inhibitor, astfel valval poate fi negativ, iar fertilitatea unei celule poate scădea. Contribuțiile (pozitive și negative) se adună. Dacă doi curenți ai aceluiași cireș ating aceeași celulă, contribuțiile se adună; de exemplu, dacă doi curenți trec prin (r,c)(r, c), atunci acolo se adaugă 2val2 \cdot val.

Se iau în considerare doar celulele aflate în interiorul matricei. Orice porțiune a unei zone de înflorire care depășește marginile matricei va fi ignorată.

Cerințe

Se cere determinarea matricei finale a fertilității după aplicarea tuturor celor QQ înfloriri, pentru una dintre următoarele trei variante:

Cerința 1

Pentru această cerință, înfloririle se vor aplica uniform pe zone care formează pătrate în matrice. Astfel, se garantează că QQ este par, iar înfloririle sunt grupate în perechi aflate pe poziții consecutive (în funcție de numărul lor de ordine): înflorirea 11 cu 22, 33 cu 44, \ldots, Q1Q - 1 cu QQ.

Pentru fiecare pereche, prima înflorire are activ exact un singur semnal, iar a doua are activ exact semnalul opus acestuia, semnalele opuse considerându-se 00 cu 11, respectiv 22 cu 33. De asemenea, ambele înfloriri din pereche au aceeași valoare valval.

Mai mult, dacă prima înflorire din pereche are coordonatele (r,c)(r, c) și puterea KK, atunci a doua înflorire are puterea K1K - 1, iar semnalul activ și coordonatele ei se determină conform tabelului următor:

Semnal prima înflorire Semnal a doua înflorire Coordonate a doua înflorire
00 11 (rK,c+K)(r - K, c + K)
11 00 (r+K,cK)(r + K, c - K)
22 33 (rK,cK)(r - K, c - K)
33 22 (r+K,c+K)(r + K, c + K)

Cerința 2

Pentru fiecare înflorire sunt active simultan toate cele 4 semnale.

Cerința 3

Pentru fiecare înflorire poate fi activă orice submulțime a celor 4 semnale.

Date de intrare

Fișierul polen.in conține:

  • pe prima linie, un număr natural CC, reprezentând cerința care trebuie rezolvată;
  • pe a doua linie, trei numere naturale NN, MM, QQ, cu semnificația din enunț;
  • pe următoarele QQ linii, câte cinci numere întregi rr, cc, KK, valval, cheiecheie, cu semnificația din enunț.

Date de ieșire

Fișierul polen.out va conține NN linii, fiecare având câte MM numere întregi separate prin spațiu, reprezentând fertilitatea finală a fiecărei parcele din grădină.

Restricții și precizări

  • C{1,2,3}C \in \{1, 2, 3\}
  • 1N,M,K1 0001 \leq N, M, K \leq 1 \ 000
  • 1Q1 000 0001 \leq Q \leq 1 \ 000 \ 000
  • 1rN1 \leq r \leq N
  • 1cM1 \leq c \leq M
  • 0cheie150 \leq cheie \leq 15
  • 109val109-10^9 \leq val \leq 10^9
  • Se garantează pentru primele 9 subtaskuri că toate zonele de înflorire se află în interiorul matricei.
# Punctaj Restricții
1 4 C=1,N,M,Q200C = 1, N, M, Q \leq 200
2 5 C=1,Q5 000C = 1, Q \leq 5 \ 000
3 13 C=1C = 1. Fără alte restricții suplimentare.
4 5 C=2,N,M,Q200C = 2, N, M, Q \leq 200
5 8 C=2,Q5 000C = 2, Q \leq 5 \ 000
6 16 C=2C = 2. Fără alte restricții suplimentare.
7 7 C=3,N,M,Q200C = 3, N, M, Q \leq 200
8 9 C=3,Q5 000C = 3, Q \leq 5 \ 000
9 21 C=3C = 3. Fără alte restricții suplimentare.
10 12 C=3C = 3. Zonele de înflorire pot depăși marginile matricei. Fără alte restricții suplimentare.

Exemplul 1

polen.in

1
10 11 6
4 2 2 1 1
2 4 1 1 2
5 4 2 1 1
3 6 1 1 2
9 7 3 1 1
6 10 2 1 2

polen.out

0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 0 0 0 0 0 0 0
0 1 1 2 1 1 0 0 0 0 0
0 1 1 2 1 1 0 0 0 0 0
0 0 0 1 1 1 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 0
0 0 0 0 0 0 1 1 1 1 0
0 0 0 0 0 0 1 1 1 1 0
0 0 0 0 0 0 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0

Explicație

În matricea alăturată, culorile indică zona acoperită de fiecare pereche de înfloriri:

  • Albastru - înfloririle 1 și 2
  • Portocaliu - înfloririle 3 și 4
  • Verde - înfloririle 5 și 6
  • Mov - intersecția zonei albastre cu cea portocalie

Exemplul 2

polen.in

2
9 9 1
5 5 4 1 15

polen.out

0 0 0 0 2 0 0 0 0
0 0 0 1 2 1 0 0 0
0 0 1 1 2 1 1 0 0
0 1 1 1 2 1 1 1 0
2 2 2 2 4 2 2 2 2
0 1 1 1 2 1 1 1 0
0 0 1 1 2 1 1 0 0
0 0 0 1 2 1 0 0 0
0 0 0 0 2 0 0 0 0

Explicație

În matricea alăturată:

  • valorile albastre sunt celule acoperite o singură dată;
  • valorile mov sunt celule acoperite de două triunghiuri;
  • valoarea roșie din centru este acoperită de toate cele 4 triunghiuri.

Exemplul 3

polen.in

3
10 10 4
2 2 2 1 1
3 7 2 1 3
8 3 2 1 11
7 8 2 1 15

polen.out

0 1 1 0 0 0 1 0 0 0
0 1 1 1 0 0 1 1 0 0
0 0 0 0 1 1 2 1 1 0
0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 1 2 0 0
0 0 1 0 0 0 1 2 1 0
0 0 1 1 0 2 2 4 2 2
1 1 3 2 2 0 1 2 1 0
0 1 2 1 0 0 0 2 0 0
0 0 2 0 0 0 0 0 0 0

Explicație

În matricea alăturată, fiecare culoare indică contribuția unei înfloriri:

  • Albastru - Prima înflorire, cu un singur semnal activ;
  • Portocaliu - A doua înflorire, cu două semnale active;
  • Verde - A treia înflorire, cu trei semnale active;
  • Roșu - A patra înflorire, cu toate cele 4 semnale active.

Log in or sign up to be able to send submissions!