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

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

포스터

시간 제한2초메모리 제한512 MB

요약
원형으로 배치된 n개의 포스터에서 네 명 이상 연속으로 들지 않도록 부분집합을 골라 색채 총합을 최대로 하고, q번의 갱신마다 답을 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 세그먼트 트리, 행렬, 배열
정답자
아직 제출이 없습니다

문제

친구들은 국제 정보 올림피아드를 마치고 돌아오는 국가대표팀을 맞이할 준비를 하고 있다. 이를 위해 여러 장의 화려한 포스터를 준비했다. 이제 축하의 세부 사항만 정하면 된다.

팀을 맞이하기 위해 nn명의 친구가 원을 이루어 선다. 원을 따라 위치한 순서대로 1번부터 nn번까지 번호를 붙이자. 그러면 모든 ii에 대해 1≤i≤n−11 \le i \le n-1인 경우 ii번과 i+1i+1번 친구가 서로 옆에 서 있고, nn번과 1번 친구도 서로 옆에 서 있다. 친구들은 각자 포스터를 하나씩 가지고 있다. 각 포스터는 화려함이라는 음이 아닌 정수로 나타낼 수 있다. ii번 친구의 포스터는 화려함 aia_i를 가진다.

축하가 시작되면 일부 친구가 포스터를 들어 팀에게 보여준다. 팀원들이 헷갈리지 않고 모든 포스터를 볼 수 있도록, 포스터를 든 친구가 넷 이상 연속으로 서 있으면 안 된다.

친구들은 만나는 동안 포스터를 바꿀 계획이다. 모두 qq번의 변경이 이루어진다. ii번째 변경 후에 pip_i번 친구의 포스터는 화려함 viv_i를 가진다. 친구들은 각 변경 후에 정해진 제약을 어기지 않으면서 들 수 있는 포스터의 최대 총 화려함을 알고 싶어 한다.

포스터의 초기 화려함과 변경 순서가 주어질 때, 처음과 각 변경 후에 연속으로 세 장 이하의 포스터만 들 수 있다는 조건을 어기지 않으면서 얻을 수 있는 든 포스터의 최대 총 화려함을 구하는 프로그램을 작성해야 한다.

입력

첫째 줄에는 정수 nn (4≤n≤40 0004 \le n \le 40\,000)이 주어진다. 이는 친구의 수이다.

둘째 줄에는 nn개의 정수 aia_i (0≤ai≤1090 \le a_i \le 10^9)가 주어진다. 이는 친구들의 포스터 화려함의 초깃값이다.

셋째 줄에는 하나의 정수 qq (0≤q≤40 0000 \le q \le 40\,000)가 주어진다. 이는 친구들이 수행한 포스터 변경의 수이다.

다음 qq개의 줄 각각에는 두 정수 pip_i와 viv_i (1≤pi≤n1 \le p_i \le n; 0≤vi≤1090 \le v_i \le 10^9)가 주어진다. 이는 포스터가 바뀐 친구의 번호와 그 포스터의 새 화려함이다.

출력

q+1q+1개의 수를 출력한다. 첫 번째 변경 전과 각 포스터 변경 후에, 연속으로 세 장을 초과하여 들 수 없다는 조건 아래에서 든 포스터의 최대 총 화려함을 하나의 정수로 출력한다.

힌트

예제의 테스트를 살펴보자.

첫 번째 변경 전에는 2, 4, 5, 6번 친구가 포스터를 들어야 한다. 든 포스터의 총 화려함은 17이 된다.

첫 번째 변경 후 6번 친구의 포스터 화려함은 0이 된다. 이제는 1, 3, 4, 5번 친구가 포스터를 들어야 한다. 총 화려함은 13이 된다.

두 번째 변경 후 2번 친구의 포스터 화려함은 5가 된다. 1, 2, 4, 5번 친구가 포스터를 들어야 한다. 총 화려함은 15가 된다.

예제1

  1. 예제 1

    입력
    6
    1 2 3 4 5 6
    2
    6 0
    2 5
    
    예상 출력
    17
    13
    15