Love is War

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

요약
모든 구간마다 A와 B에 공통으로 등장하는 값 중 최댓값을 구해, 그 값을 모든 구간에 대해 더한 합을 계산한다.
난이도

어려움10점 중 8점

유형
스택, 배열, 분할 정복, 누적 합
정답자
아직 제출이 없습니다

문제

우정이와 아름이는 열렬한 사랑을 하고 있다. 우정이와 아름이의 사랑을 증명하기 위해 당신은 궁합 테스트를 만들었다. 우정이와 아름이는 각각 길이가 NN이고 각 원소의 범위가 11 이상 NN 이하인 수열을 생각한다. 궁합 테스트는 우정이의 수열 AA와 아름이의 수열 BB를 이용해 LOVE 점수를 계산해 주는 원리이고 다음과 같이 계산된다.

f(l…r)f(l \ldots r) = (A_i=B_j=xA\_i=B\_j=x 인 l≤i,j≤rl\leq i,j\leq r이 존재하는 xx의 최댓값, xx가 존재하지 않으면 00) 이다. 즉, f(l…r)f(l \ldots r) 는 A\[l…r]A\[l \ldots r]과 B\[l…r]B\[l \ldots r] 중 겹치는 수의 최댓값이다. 겹치는 수가 없으면 0이다.

LOVE 점수 = ∑_1≤l≤r≤Nf(l…r)\sum\_{1\leq l\leq r\leq N}f(l \ldots r) 이다. 즉 가능한 모든 (N+12)\binom{N+1}{2}개의 구간에 대한 ff값의 합이다.

사랑은 전쟁이다. 우정이와 아름이는 누가 더 서로를 사랑하는지 대결하려고 LOVE 점수를 최대한 빨리 구하려고 했다. 하지만 NN은 우정이와 아름이의 사랑보다 큰 것 같다. 대신 당신이 두 수열 A,BA,B가 주어졌을 때 LOVE 점수를 직접 구해보자.

입력

첫 번째 줄에 우정이와 아름이의 수열의 길이 NN이 주어진다.

두 번째 줄에 우정이의 수열 A_i(1≤i≤N)A\_i (1 \leq i \leq N) 이 공백으로 구분되어 주어진다.

세 번째 줄에 아름이의 수열 B_i(1≤i≤N)B\_i (1 \leq i \leq N) 이 공백으로 구분되어 주어진다.

출력

우정이와 아름이의 LOVE 점수를 출력한다.

제한

  • N≤500,000N \leq 500,000
  • 1≤A_i,B_i≤N(1≤i≤N)1 \leq A\_i,B\_i \leq N (1 \leq i \leq N)
  • 문제에서 주어지는 모든 수는 정수이다.

힌트

  • 이 문제의 일부 테스트 케이스는 답의 범위가 2312^{31}을 넘어갈 수 있으므로 long long 자료형을 쓰도록 하자.

예제1

  1. 예제 1

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