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

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

Kopiec

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

요약
배열에 구간 덧셈이 일어날 때마다 부모가 자식보다 크지 않다는 이진 힙 성질이 유지되는지 판별한다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 누적 합, 배열
정답자
아직 제출이 없습니다

문제

Bajtek, podczas swoich przygotowań do Bajtockiej Olimpiady Informatycznej Juniorów, natknął się na nową strukturę danych: kopiec binarny.

Kopiec binarny rozmiaru N może być reprezentowany przez tablicę1 (ciąg) długości N. Kolejne elementy tej tablicy umieszczone są na kolejnych poziomach drzewa binarnego. Węzły tego drzewa numerowane są kolejnymi liczbami naturalnymi od 1 do N włącznie. Węzeł i-ty jest rodzicem węzłów o numerach 2i oraz 2i + 1 (o ile te węzły istnieją, czyli o ile ich numer nie przekracza N). Każdy węzeł zawiera element tablicy T: w węźle o numerze i umieszczony jest i-ty element tablicy T. W kopcu musi być zachowana własność, że wartość zapisana w rodzicu węzła nie jest większa od wartości w jego dzieciach.

Poniższy rysunek przedstawia kopiec rozmiaru 6 reprezentowany ciągiem: (1, 2, 4, 6, 3, 5):

Bajtek zastanawia się czy jego tablica T reprezentuje kopiec. Co więcej, często dokonuje w tablicy zmian: każda taka zmiana polega na wybraniu dwóch pozycji x i y w tablicy (x ≤ y) oraz wartości z i zwiększeniu każdej z komórek T[x], T[x + 1], . . ., T[y] o z. Wartość z może być ujemna, co efektywnie oznacza zmniejszenie wartości komórek. Bajtek chciałby wiedzieć, po których operacjach jego tablica reprezentuje kopiec. Pomóż mu.

Napisz program, który wczyta zawartość początkową tablicy Bajtka T oraz operacje jakie Bajtek wykonuje na tablicy, wyznaczy po każdej operacji czy zawartość tablicy reprezentuje kopiec i wypisze wyniki na standardowe wyjście.


1Na potrzeby tego zadania zakładamy, że tablice indeksowane są kolejnymi liczbami naturalnymi od 1 do N.

입력

W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N (1 ≤ N ≤ 300 000), określająca rozmiar tablicy. W drugim wierszu znajduje się ciąg N liczb całkowitych T[i] (−109 ≤ T[i] ≤ 109) pooddzielanych pojedynczymi odstępami, oznaczają one kolejne elementy tablicy T. Elementy tablicy są numerowane jak węzły od 1 do N. W trzecim wierszu wejścia znajduje się jedna liczba naturalna Q (0 ≤ Q ≤ 300 000) określająca liczbę operacji Bajtka na tablicy. W kolejnych Q wierszach znajduje się opis każdej operacji: każda z operacji opisywana jest trzema liczbami x, y oraz z (1 ≤ x ≤ y ≤ N, −109 ≤ z ≤ 109) pooddzielanymi pojedynczymi odstępami. Oznaczają one zwiększenie komórek tablicy o indeksach w przedziale domkniętym [x, y] o z.

출력

Twój program powinien wypisać na wyjście Q + 1 wierszy. W i-tym z nich powinna się znaleźć odpowiedź TAK lub NIE, w zależności od tego, czy po wykonaniu i − 1 pierwszych operacji z wejścia tablica Jasia reprezentuje kopiec.

예제1

  1. 예제 1

    입력
    6
    1 2 4 6 3 5
    5
    2 4 4
    4 6 5
    1 1 -1
    5 6 -2
    1 2 10
    
    예상 출력
    TAK
    NIE
    TAK
    TAK
    TAK
    NIE