만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Maximizer

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

요약
1부터 N까지의 순열 A와 B가 주어질 때, |a_i - b_i|의 합을 최대로 만드는 A의 순열에 도달하기 위해 필요한 인접 교환의 최소 횟수를 구한다.
난이도

어려움10점 중 8점

유형
그리디, 조합론, 정렬, 수학
정답자
아직 제출이 없습니다

문제

Maximizer는 두 순열 A=[a1,a2,⋯ ,aN]A=[a_1,a_2,\cdots,a_N]과 B=[b1,b2,⋯ ,bN]B=[b_1,b_2,\cdots,b_N]을 가지고 있다. AA와 BB는 길이가 NN이고, 11부터 NN까지의 서로 다른 정수로 이루어져 있다.

Maximizer는 각 원소의 차의 합 ∑i=1N∣ai−bi∣\sum_{i=1}^{N} |a_i - b_i|을 최대로 만들려고 한다. 그러나 그는 AA에서 인접한 두 원소만 교환할 수 있다. 즉, 1≤i≤N−11 \le i \le N-1인 어떤 ii에 대해 aia_i와 ai+1a_{i+1}만 교환할 수 있다. 교환 횟수에는 제한이 없다.

차의 합을 최대로 만들기 위해 필요한 최소 교환 횟수는 얼마인가?

입력

첫째 줄에 정수 NN이 주어진다. (1≤N≤250 0001 \leq N \leq 250\,000)

둘째 줄에 NN개의 정수 a1,a2,⋯ ,aNa_1,a_2,\cdots,a_N이 주어진다. (1≤ai≤N1 \leq a_i \leq N)

셋째 줄에 NN개의 정수 b1,b2,⋯ ,bNb_1,b_2,\cdots,b_N이 주어진다. (1≤bi≤N1 \leq b_i \leq N)

[a1,a2,⋯ ,aN][a_1,a_2,\cdots,a_N]과 [b1,b2,⋯ ,bN][b_1,b_2,\cdots,b_N]은 각각 순열이다. 즉, 11부터 NN까지의 서로 다른 정수로 이루어져 있다.

출력

차의 합을 최대로 만들기 위해 필요한 최소 교환 횟수를 정수로 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 2 3
    1 2 3
    
    예상 출력
    2
    
  2. 예제 2

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