Medwalk

Time limit: 4s Memory limit: 256MB Input: Output:

Se dă o matrice cu 22 linii și NN coloane. De asemenea, se dau QQ operații de 22 tipuri, pe care va trebui să le procesați în ordine. Cele 22 tipuri de operații sunt definite astfel:

  • 11 linlin colcol xx - valoarea elementului aflat pe linia linlin și coloana colcol va deveni xx.
  • 22 stst drdr - afișați scorul submatricei cu colțurile în celulele (1,st)(1,st), respectiv (2,dr)(2,dr).

Scorul unei submatrice cu colțurile în celulele (1,st)(1,st), respectiv (2,dr)(2,dr) este calculat astfel:

  1. Se pot permuta oricum coloanele submatricei. (Această permutare nu va persista la următoarele operații.)
  2. După pasul anterior, se va alege un drum de lungime minimă cu capetele în celulele (1,st)(1,st), respectiv (2,dr)(2,dr). Un drum este format dintr-o succesiune de celule distincte, unde oricare două celule consecutive din drum sunt adiacente pe linie sau pe coloană.
  3. Scorul submatricei este egal cu valoarea minimă posibilă a medianei numerelor dintr-un drum construit la pasul anterior.

Definim mediana unui șir de numere AA cu MM elemente, numerotate de la 11 la MM, ca fiind elementul aflat pe poziția M2\lceil\frac{M}{2} \rceil în urma sortării șirului. De exemplu, mediana șirului [1,3,1,2][1,3,1,2] este 11, iar mediana șirului [1,2,3][1,2,3] este 22.

Cerință

Se cere să se determine scorul submatricei date pentru fiecare operație de tip 22.

Date de intrare

Pe prima linie se vor afla două numere NN și QQ - numărul de coloane din matrice, respectiv numărul de operații.

Pe a doua linie se vor afla NN numere, reprezentând valorile inițiale ale elementelor de pe prima linie a matricei.

Pe a treia linie se vor afla NN numere, reprezentând valorile inițiale ale elementelor de pe a doua linie a matricei.

Pe următoarele QQ linii se vor afla descrierile operațiilor, câte un una pe fiecare pe linie. Fiecare dintre următoarele QQ linii va avea unul dintre următoarele formaturi:

  • 11 linlin colcol xx
  • 22 stst drdr.

Toate valorile de pe aceeași linie sunt separate prin câte un spațiu.

Date de ieșire

Pentru fiecare operație de tipul 22 se va afișa răspunsul pe câte o linie.

Restricții și precizări

  • 1N,Q1051 \leq N,Q \leq 10^5
  • 1numerele din matrice31051 \leq \text{numerele din matrice} \leq 3 \cdot 10^5
  • Pentru toate operațiile de tipul 11:
    • 1lin21 \le lin \le 2 , 1colN1 \le col \le N
    • 1x31051 \le x \le 3 \cdot 10^5
  • Pentru toate operațiile de tipul 22:
    • 1stdrN1 \le st \le dr \le N
# Scor Restricții
1 7 N7,Q1 000N \leq 7, Q \leq 1 \ 000
2 12 N,Q5 000N,Q \leq 5 \ 000
3 5 numerele din matrice2\text{numerele din matrice} \leq 2; pentru toate operațiile de tipul 11, x2x \le 2
4 28 Nu există operații de tipul 11
5 23 N,Q60 000N,Q \leq 60 \ 000
6 16 N,Q80 000N,Q \leq 80 \ 000
7 9 Fără restricții adiționale

Exemplul 1

stdin

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

stdout

3
9
5
4

Explicație

Pentru prima operație este optim să permutăm coloanele matricei în următorul mod:

[69156109103316]\begin{bmatrix} \textbf{6} & \textbf{9} & \textbf{1} & 5 & 6 & 10 \\ 9 & 10 & \textbf{3} & \textbf{3} & \textbf{1} & \textbf{6} \end{bmatrix}

Mediana minimă a unui drum din celula (1,1)(1,1) în celula (2,6)(2,6) este 33, obținută din drumul conținând celulele cu valorile [6,9,1,3,3,1,6][6,9,1,3,3,1,6].

Exemplul 2

stdin

8 9
2 1 2 2 1 1 2 2
1 2 1 2 2 1 2 1
2 1 8
1 1 2 2
2 4 5
2 5 5
1 1 6 2
2 4 7
2 5 8
1 2 3 2
2 1 3

stdout

1
2
1
2
1
2

Explicație

Acest test se încadrează în subtask-ul 33.

Exemplul 3

stdin

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

stdout

3
1
5
4
5
3

Explicație

Acest test se încadrează în subtask-ul 44.

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