순열과 수열

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

요약
순열 A와 가중치 X가 주어질 때 A[B_i]=B[A_i]를 만족하는 수열 B 중 가중치 합 X·B가 최대인 값을 구한다.
난이도

보통10점 중 7점

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

문제

길이 NN의 순열은 1,2,⋯ ,N1, 2, \cdots , N이 정확히 한 번 등장하는 수열이다. 예를 들어, \[2,3,1,4]\[2, 3, 1, 4]나 \[6,4,5,1,2,3]\[6, 4, 5, 1, 2, 3]은 모두 순열이지만 \[1,2,2]\[1, 2, 2]나 \[1,2,3,5]\[1, 2, 3, 5]는 순열이 아니다. 길이 NN의 순열 AA와 길이 NN의 수열 XX가 주어진다.

다음 조건에 맞는 길이 NN의 수열 BB 중에서 X_1B_1+X_2B_2+⋯+X_NB_NX\_1 B\_1 + X\_2 B\_2 + \cdots + X\_N B\_N의 최댓값을 출력하라.

  • BB의 각 원소는 11 이상, NN 이하의 정수이다.
  • 1≤i≤N1 \le i \le N인 모든 양의 정수 ii에 대하여 A_B_i=B_A_iA\_{B\_i}=B\_{A\_i}

모든 순열 AA에 대해 위 조건을 만족하는 수열 BB가 하나 이상 존재한다는 것을 증명할 수 있다.

입력

첫째 줄에 정수 NN이 주어진다.

둘째 줄에 NN개의 정수 A_1,A_2,⋯A_NA\_1, A\_2, \cdots A\_N이 공백을 사이에 두고 주어진다.

셋째 줄에 NN개의 정수 X_1,X_2,⋯X_NX\_1, X\_2, \cdots X\_N이 공백을 사이에 두고 주어진다.

출력

첫째 줄에 조건에 맞는 수열 BB 중에서 X_1B_1+X_2B_2+⋯X_NB_NX\_1 B\_1 + X\_2 B\_2 + \cdots X\_N B\_N의 최댓값을 출력하라.

제한

  • 1≤N≤5,0001 \leq N \leq 5\\,000
  • AA는 길이 NN의 순열이다.
  • 1≤X_i≤1,000,000,0001 \le X\_i \le 1\\,000\\,000\\,000
  • 주어지는 모든 수는 정수이다.

예제3

  1. 예제 1

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

    입력
    5
    1 2 3 4 5
    10 20 30 40 50
    
    예상 출력
    750
    
  3. 예제 3

    입력
    10
    9 3 4 1 2 6 10 8 5 7
    732145689 501239876 924367518 635198247 187504329 846251790 309684752 415927683 572836194 698413257
    
    예상 출력
    49654457197