Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
TAB_5 - Tablica binarna |
Dana jest tablica A zawierająca n wierszy i m kolumn, składająca się z nm pól, w które można wpsiywać zera lub jedynki. Wiersze numerujemy liczbami 1, ..., n od góry do dołu, a kolumny liczbami 1, ..., m od lewej do prawej (patrz tę rzutunek poniżej). Pole w i-tym wierszu i j-tej kolumnie (dla 1 ≤ i ≤ n, 1 ≤ j ≤ m) ma wspórzedne (i, j).
Na tablicy można wykonywać operacje zmiany (negacji) liczb na wybranych prostokątach. Każda operacja jest opisywana przez cztery liczby i₁, j₁, i₂, j₂. Polega ona na tym, że zaznaczamy pola tablicy, które leżą w prostokącie o przeciwległych wierzchołkach w polach (i₁, j₁) oraz (i₂, j₂), a następnie w każdym polu zaznaczonego prostokąta zmieniamy zera na jedynki, a jedynki na zera.
Powiemy, że operacja jest prosta, jeśli lewy górny róg prostokąta pokrywa się z lewym górnym rogiem tablicy (czyli i₁ = j₁ = 1).
Początkowo wszystkie liczby tablicy są zerami. Następnie wykonujemy q operacji, które zmieniają tablice. Po wykonaniu każdej operacji musimy obliczyć, ile dodatkowo prostych operacji mielibysmy wykonać, aby wszystkie liczby tablicy stały się na powrót zerami.
Wejście
W pierwszym wierszu wejścia znajduje się trzy liczby całkowite n, m i q (1 ≤ n, m ≤ 1000, 1 ≤ q ≤ 100000) oznaczające wymiary tablicy i liczbę operacji do wykonania.
Każdy z kolejnych q wierszy zawiera opis jednej operacji wykonywanej na tablicy; opis jest w postaci czterech liczb całkowitych i₁, j₁, i₂ i j₂ (1 ≤ i₁ ≤ i₂ ≤ n, 1 ≤ j₁ ≤ j₂ ≤ m).
Wyjście
Na wyjście należy wypisać dokładnie q wierszy zawierających odpowiedzi do kolejnych zapytań z wejścia. Dla każdego zapytania należy wypisać jedną liczbę całkowitą oznaczającą minimalną liczbę prostych operacji, które trzeba wykonać, aby wszystkie liczby tablicy A zmienione przez i początkowe operacje z wejścia stały się zerami.
Przykład Dla danych wejściowych: 2 3 3 1 2 2 2 1 1 2 1 1 2 1 3 poprawnym wynikiem jest: 2 1 3
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2020-10-26 |
Limit czasu wykonania programu: | 1s-30s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET |