Casă

Time limit: 0.3s Memory limit: 32MB Input: casa.in Output: casa.out

Nu am nicio glumă la problema asta.

Cerință

Mihăiță se joacă un joc cu sora sa mai mare. Acesta constă într-o tablă cu NN linii și MM coloane. Inițial, tabla este goală. Sora sa face QQ mișcări pe tabla de joc. Fiecare mișcare poate fi de tipul 11 sau 22:

  • 1 i j - Mișcare de tipul 1. Sora sa plantează un copac pe poziția (i,j)(i, j).
  • 2 i j - Mișcare de tipul 2. Sora sa îi pune următoarea întrebare lui Mihăiță: „Care este cea mai mare casă pe care o poți construi pe tablă și care conține celula (i,j)(i, j) în interiorul ei, dacă luăm în considerare copacii plantați până acum?”.

Casele au formă dreptunghiulară, cu laturile paralele cu marginile tablei de joc. O casă poate fi identificată prin colțul stânga-sus (i1,j1)(i_1, j_1) și colțul dreapta-jos (i2,j2)(i_2, j_2). O casă poate fi construită într-o locație dacă:

  • Nu se află niciun copac în interiorul acesteia.
  • Din fiecare poziție din aceasta, putem vedea toate marginile tablei fără a fi blocați de vreun copac în oricare direcție.

Formal, o casă (i1,j1)(i_1, j_1) (i2,j2)(i_2, j_2) poate fi construită dacă nu există niciun copac (ic,jc)(i_c, j_c) (plantat până la momentul întrebării) care să îndeplinească i1ici2i_1 \leq i_c \leq i_2 sau j1jcj2j_1 \leq j_c \leq j_2. Mărimea unei case este aria dreptunghiului.

În figurile 141-4, vedem o tablă cu 55 linii și 55 coloane. Sora lui Mihăiță a plantat 22 copaci pe pozițiile (2,5)(2, 5) și (5,1)(5, 1). Acum, ea îi pune o întrebare (mișcare de tipul 22) pe poziția (3,3)(3, 3).

  • În figura 1, casa (3,3)(3, 3) (4,4)(4, 4) este construită corect.
  • În figura 2, casa (2,2)(2, 2) (3,3)(3, 3) nu este construită corect, deoarece copacul (2,5)(2, 5) blochează vederea spre marginea dreaptă a tablei.
  • În figura 3, casa (3,3)(3, 3) (5,4)(5, 4) nu este construită corect, deoarece copacul (5,1)(5, 1) blochează vederea spre marginea stângă a tablei.
  • În figura 4, casa (3,2)(3, 2) (4,4)(4, 4) este construită corect. Aceasta este cea mai mare casă care poate fi construită între cei 22 copaci, cu aria 66.

Mihăiță s-a plictisit rapid de acest joc, așa că este rândul vostru să vă jucați împotriva surorii lui.

Date de intrare

Pe prima linie a fișierului de intrare casa.in se găsesc 33 numere întregi, NN, MM și QQ, reprezentând dimensiunile tablei și numărul de mișcări ale fetei.
Pe fiecare din următoarele QQ linii, se găsesc 33 numere întregi, cc, ii, jj, care descriu o mișcare din cele 22 tipuri posibile (c=1c = 1 sau c=2c = 2).

Date de ieșire

Pentru fiecare operație de tipul 22, se va afișa în fișierul de ieșire casa.out, pe câte o linie, aria maximă a unei case care respectă condițiile (în ordinea mișcărilor de tipul 22 din fișierul de intrare).

Restricții și precizări

  • 1N,M1091 \leq N, M \leq 10^9;
  • 1Q100 0001 \leq Q \leq 100 \ 000;
  • 1ikN1 \leq i_k \leq N și 1jkM1 \leq j_k \leq M, pentru 1kQ1 \leq k \leq Q;
  • Copacii plantați au poziții diferite;
  • Dacă c=2c = 2 (mișcare de tipul 22), atunci nu va exista niciun copac (ic,jc)(i_c, j_c) cu ic=ii_c = i sau jc=jj_c = j (aria maximă a casei cerute nu va fi niciodată 00);
# Punctaj Restricții
1 13 1N,M,Q101 \leq N, M, Q \leq 10
2 18 1N,M,Q601 \leq N, M, Q \leq 60
3 21 1N,M2 0001 \leq N, M \leq 2 \ 000 și 1Q1 0001 \leq Q \leq 1 \ 000
4 11 1Q1 0001 \leq Q \leq 1 \ 000 și 1LatMAX2 0001 \leq Lat_{MAX} \leq 2 \ 000, unde LatMAXLat_{MAX} e latura maximă a unei case
5 37 Fără restricții suplimentare

Exemplu

casa.in

4 5 5
1 2 4
2 3 2
1 4 1
2 3 3
2 1 5

casa.out

6 
2 
1

Explicație

Pentru prima întrebare, singurul copac plantat este (2,4)(2, 4). Cea mai mare casă pe care o putem construi este (3,1)(3, 1) (4,3)(4, 3) cu aria 66. Pentru a doua și a treia întrebare, casele optime sunt (3,2)(3, 2) (3,3)(3, 3), respectiv (1,5)(1, 5) (1,5)(1, 5).

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