Logo
(追記) (追記ここまで)

26820번 - Wycieczki 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
10 초 1024 MB0000.000%

문제

Bajtosia prowadzi biuro podróży. Nie jest to łatwy biznes, szczególnie w dzisiejszych czasach, dlatego trzeba wprowadzać nowe akcje i promocje. Bajtosia zdecydowała się zorganizować serię N jednodniowych wycieczek, po jednej na każdy z N dni wakacji. Przygotowana wycieczka na i-ty dzień ma koszt Ai (dla i = 1, 2, . . ., N).

Bajtosia zauważyła, że wszyscy klienci mają bardzo podobne potrzeby. Wszyscy klienci decydują się na kupno dokładnie jednej wycieczki. Każdy klient ma pewien przedział czasu, kiedy jest na urlopie i chciałby kupić wycieczkę pomiędzy pewnymi dniami Lj a Rj (włącznie). Każdy klient ma także bon turystyczny o pewnym koszcie Vj, który pozwala mu pokryć koszt tej wycieczki. Aby bon można było wykorzystać w całości (i nic się nie zmarnowało), klient chciałby kupić wycieczkę która jest warta więcej niż Vj.

Bajtosia także podzieliła swoich klientów na dwie kategorie:

  • Klientów, którzy chcą wybrać się na wakacje jak najszybciej. Oznacza to, że wykupią oni pierwszą wycieczkę, która będzie dostępna podczas ich urlopu i kosztowała więcej niż wartość ich bonu.
  • Klientów, którzy chcą wyjechać na wakacje jak najtaniej. Oznacza to, że wykupią oni najtańszą wycieczkę, która jest dostępna podczas ich urlopu, o ile będzie kosztowała więcej niż wartość ich bonu. W przypadku kilku wycieczek spełniających to kryterium, klienci zawsze wybierają tą wycieczkę, która będzie najszybciej.

Bajtosia teraz chciałaby przyśpieszyć obsługę klientów i stworzyć system, którzy pomoże obsługiwać zapytania. Dodatkowo, czasami koszty wycieczek się zmieniają (z przyczyn niezależnych od Bajtosi) i jej system musi obsługiwać także zmiany kosztów wycieczek.

Napisz program, który wczyta początkowe ceny wycieczek, zapytania klientów oraz zmiany cen, obliczy najlepszy dzień na wycieczkę dla każdego klienta i wypisze wyniki na standardowe wyjście.

입력

W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N oraz Q (1 ≤ N, Q ≤ 200 000), określające kolejno: liczbę wycieczek będącą jednocześnie liczbą dni wakacji oraz liczbę zapytań klientów wraz ze zmianami cen. W drugim wierszu wejścia znajduje się ciąg N liczb naturalnych Ai (0 ≤ Ai ≤ 109), gdzie Ai oznacza początkową ceny wycieczki zaplanowanej na i-ty dzień.

W kolejnych Q wierszach znajdują się kolejne zdarzenia.

  • Jeżeli chcemy obsłużyć klienta, który chce wybrać się na wakacje jak najszybciej, na początku wiersza znajdzie się słowo najszybciej, a po nim trzy liczby całkowite Lj, Rj oraz Vj (1 ≤ L ≤ Rj ≤ N, 0 ≤ Vj ≤ 109) oznaczające kolejno pierwszy i ostatni dzień urlopu danego klienta oraz wartość jego bonu.
  • Jeżeli chcemy obsłużyć klienta, który chce wybrać się na wakacje jak najtaniej, na początku wiersza znajdzie się słowo najtaniej, a po nim trzy liczby całkowite Lj, Rj oraz Vj ze znaczeniem oraz ograniczeniami jak wyżej.
  • Jeżeli cenę którejś wycieczki należy zmodyfikować, na początku wiersza znajdzie się słowo zmiana, a po nim dwie liczby całkowite Dj oraz Cj (1 ≤ Dj ≤ N, 0 ≤ Cj ≤ 109), które oznaczają, że cenę wycieczki dnia Dj należy zmienić na Cj.

출력

Twój program powinien wypisać odpowiedzi dla zdarzeń typu najszybciej oraz najtaniej zgodnie z kolejnością ich występowania na wejściu w osobnym wierszach.

Jeżeli nie istnieje żadna wycieczka spełniająca warunki klienta, należy zamiast tego wypisać NIE.

제한

예제 입력 1

6 5
3 2 4 2 9 1
najtaniej 2 5 3
najszybciej 3 4 3
najtaniej 1 6 9
zmiana 4 10
najtaniej 1 6 9

예제 출력 1

3
3
NIE
4

Wyjaśnienie do przykładu: Początkowo ceny wycieczek w kolejnych dniach to [3, 2, 4, 2, 9, 1], mamy Q = 6 zdarzeń.

  • Szukamy najtańszej wycieczki o koszcie większym niż 3 wśród wycieczek między drugim a piątym dniem. Najtańszą taką wycieczką jest wycieczka w trzecim dniu o koszcie 4. Wypisujemy numer dnia – 3.
  • Szukamy pierwszej wycieczki o koszcie większym niż 3 pomiędzy drugim a czwartym dniem. Jest to ponownie wycieczka w trzecim dniu.
  • Pomiędzy pierwszym a szóstym dniem nie mamy żadnej wycieczki droższej niż 9, więc należy wypisać NIE.
  • Zmieniamy cenę wycieczki czwartego dnia na 10. Teraz ceny wycieczek w kolejnych dniach to [3, 2, 4, 10, 9, 1].
  • Pomiędzy pierwszym a szóstym dniem mamy już wycieczkę droższą niż 9 (jest to wycieczka zmodyfikowana w poprzednim zdarzeniu). Wypisujemy zatem 4.

예제 입력 2

4 6
7 3 1 2
najtaniej 1 2 0
najtaniej 2 3 0
najtaniej 3 4 0
najszybciej 1 2 0
najszybciej 2 3 0
najszybciej 3 4 0

예제 출력 2

2
3
3
1
2
3

힌트

출처

Camp > JPOI Summer Training Camp > JPOI Summer Training Camp 2020 3-3번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /