취향 변화

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

요약
물건 종류 배열과 취향 배열에 Q개의 갱신이 주어질 때마다, 모든 분할 지점에서 두 사람 행복도 곱의 최댓값을 구한다.
난이도

어려움10점 중 8점

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

문제

사람들은 각자의 취향이 존재한다. 하지만, K512의 유명한 단짝 shandy5833과 dong_gas는 같은 물건에 대해 같은 취향을 가진다! 즉 dong_gas가 좋아하는 물건은 shandy5833도 좋아하고, shandy5833이 좋아하는 물건은 dong_gas 또한 좋아한다.

두 친구는 일렬로 나열된 NN개의 물건을 나눠 가지려 한다. dong_gas는 가장 왼쪽에서 연속하게 몇 개의 물건을 가져가고, shandy5833은 남은 물건을 가져간다. 두 친구 중 한 명이 물건을 가져가지 않는 것도 가능하다. 각 사람은 가져간 물건 중에서 좋아하는 물건의 개수 −- 싫어하는 물건의 개수만큼의 행복도를 얻는다.

정수로 이루어진 수열 A_1,A_2,…,A_NA\_1, A\_2, \dots, A\_N과 B_1,B_2,…,B_NB\_1, B\_2, \dots, B\_N이 주어진다.

  • A_iA\_i는 ii번째 위치에 A_iA\_i번 종류의 물건이 있음을 나타낸다.
  • B_iB\_i는 물건의 취향을 나타낸다. B_iB\_i가 11이면 ii번 종류의 물건을 좋아하는 것이고, B_iB\_i가 00이면 ii번 종류의 물건을 싫어하는 것이다.

다음과 같은 QQ개의 쿼리가 주어진다.

  • 1,i,j1 \\, i \\, j: ii번째 위치의 물건을 jj번 종류의 물건으로 바꾼다. (1≤i,j≤N)(1\leq i,j\leq N)
  • 2,i2 \\, i: ii번 종류의 물건의 취향이 뒤바뀐다. 즉 ii번 종류의 물건이 좋아하는 물건이었다면 싫어하는 물건으로, 싫어하는 물건이었다면 좋아하는 물건으로 바뀐다. (1≤i≤N)(1\leq i \leq N)

매 쿼리마다 두 사람의 행복도의 곱의 최댓값을 구하여라.

입력

첫째 줄에 정수 NN과 QQ가 공백으로 구분되어 주어진다. (1≤N,Q≤105)(1\leq N,Q\leq 10^5)

둘째 줄에 정수로 이루어진 수열 A_1,A_2,⋯ ,A_NA\_1,A\_2,\cdots,A\_N이 공백으로 구분되어 주어진다. (1≤A_i≤N)(1 \leq A\_i \leq N)

셋째 줄에 정수로 이루어진 수열 B_1,B_2,⋯ ,B_NB\_1,B\_2,\cdots,B\_N이 공백으로 구분되어 주어진다. (0≤B_i≤1)(0 \leq B\_i \leq 1)

넷째 줄부터 QQ개의 줄에 걸쳐 쿼리가 주어진다.

출력

매 쿼리마다 정답을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    4 3
    1 2 1 3
    1 0 0 0
    2 2
    2 3
    1 2 1
    
    예상 출력
    1
    4
    4