유치원 사탕 나누기

아이마다 정확히 한 명을 지목하고 지목 대상이 겹치지 않아 순열을 이룰 때, 각 아이가 받은 사탕과 자신이 지목한 아이가 받은 사탕의 차의 최댓값을 최소로 만드는 배정을 찾는다.

보통6이분 탐색그리디배열정렬면접 대비아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

유치원에 아이가 NN명 있고, 아이마다 가장 친한 친구를 한 명씩 정해 두었다. 서로 다른 두 아이가 같은 아이를 가장 친한 친구로 꼽는 일은 없다. 자기 자신을 가장 친한 친구로 꼽는 아이는 있을 수 있고, AA가 꼽은 친구가 BB라고 해서 BBAA를 꼽는 것은 아니다.

선생님은 사탕 봉지 NN개를 아이 한 명당 한 봉지씩 나눠 준다. 봉지마다 든 사탕 개수가 달라서 아이들이 불만을 품는다. 아이들은 공평함에 민감해서, 아이 AA의 불만도는 AA가 받은 사탕 개수와 AA가 꼽은 친구가 받은 사탕 개수의 차이의 절댓값이다.

선생님은 아이들의 불만도 중 최댓값이 가장 작아지도록 봉지를 나눠 주려고 한다. 최대 불만도의 최솟값을 구하라.

입력

첫째 줄에 아이의 수 NN이 주어진다. (1N1501 \le N \le 150)

둘째 줄에 서로 다른 정수 NN개가 주어진다. ii번째 수는 ii번 아이가 가장 친한 친구로 꼽은 아이의 번호다. 아이의 번호는 11번부터 NN번까지다.

셋째 줄에 정수 NN개가 주어진다. ii번째 수는 ii번 봉지에 든 사탕 개수이고, 00 이상 10910^9 이하다.

출력

최대 불만도의 최솟값을 한 줄에 출력한다.