아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

빨간 선분 파란 선분

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

요약
N개의 점을 빨강 또는 파랑으로 칠한 뒤 같은 색 점끼리 교차하지 않게 선분을 그리되 빨강과 파랑 선분은 서로 닿지 않게 그려 점수 합의 최댓값을 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 기하, 백트래킹, 조합론
정답자
아직 제출이 없습니다

문제

평면 위에 서로 다른 점 NN개가 있다. 점에는 0번부터 N−1N-1번까지 번호가 붙어 있다.

점과 점을 잇는 선분을 그어 점수를 모으는 게임을 한다. 게임은 두 단계로 진행한다. 첫 번째 단계에서는 모든 점을 빨간색이나 파란색으로 칠한다. 두 번째 단계에서는 선분을 0개 이상 긋는다.

선분은 색이 같은 두 점을 이어서 긋고, 선분의 색은 두 점의 색과 같다.

색이 같은 선분끼리는 닿거나 교차해도 된다. 색이 다른 선분끼리는 닿거나 교차하면 안 된다. 즉 빨간 선분과 파란 선분은 공통점이 하나도 없어야 하고, 한 선분의 끝점이 다른 색 선분 위에 놓이는 것도 안 된다.

이 제한은 실제로 그은 선분 사이에만 적용한다. 빨간 선분이 파란 점을 지나가더라도 그 점에 닿는 파란 선분을 긋지 않았다면 상관없다.

ii번 점과 jj번 점을 잇는 빨간 선분의 점수는 red[i][j]이고, 같은 두 점을 잇는 파란 선분의 점수는 blue[i][j]이다.

선분을 그어서 얻을 수 있는 점수의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 점의 개수 NN이 주어진다. (2≤N≤202 \le N \le 20)

둘째 줄부터 NN개의 줄에 걸쳐 0번 점부터 차례대로 점의 좌표 xx와 yy가 주어진다. (−1000≤x,y≤1000-1000 \le x, y \le 1000) 좌표가 같은 점은 없다.

이어지는 NN개의 줄에는 빨간 선분의 점수 행렬이 주어진다. 그중 ii번째 줄의 jj번째 수가 red[i][j]이다. 그다음 NN개의 줄에는 같은 방식으로 파란 선분의 점수 행렬 blue[i][j]가 주어진다. red[i][j]와 blue[i][j]는 모두 0 이상 100,000 이하의 정수이다.

모든 ii에 대해 red[i][i]와 blue[i][i]는 0이고, 모든 ii와 jj에 대해 red[i][j]는 red[j][i]와 같고 blue[i][j]는 blue[j][i]와 같다.

출력

첫째 줄에 선분을 그어서 얻을 수 있는 점수의 최댓값을 출력한다.

힌트

첫 번째 예제에서는 점을 모두 파란색으로 칠하고 파란 선분을 여섯 개 모두 그으면 2+3+7+4+6+5=272+3+7+4+6+5 = 27점이 된다.

예제4

  1. 예제 1

    입력
    4
    0 1
    1 0
    0 -1
    -1 0
    0 1 2 3
    1 0 6 4
    2 6 0 5
    3 4 5 0
    0 2 3 7
    2 0 4 6
    3 4 0 5
    7 6 5 0
    
    예상 출력
    27
    
  2. 예제 2

    입력
    2
    0 1
    1 0
    0 101
    101 0
    0 100
    100 0
    
    예상 출력
    101
    
  3. 예제 3

    입력
    6
    -3 0
    -1 -2
    -1 2
    1 -2
    1 2
    3 0
    0 2 1 2 1 2
    2 0 2 1 2 1
    1 2 0 2 1 2
    2 1 2 0 2 1
    1 2 1 2 0 2
    2 1 2 1 2 0
    0 0 0 0 0 0
    0 0 0 0 0 0
    0 0 0 21 0 0
    0 0 21 0 0 0
    0 0 0 0 0 0
    0 0 0 0 0 0
    
    예상 출력
    25
    
  4. 예제 4

    입력
    6
    -100 0
    100 0
    0 100
    -10 10
    10 10
    0 1
    0 96 96 25 25 25
    96 0 96 25 25 25
    96 96 0 25 25 25
    25 25 25 0 10 10
    25 25 25 10 0 10
    25 25 25 10 10 0
    0 30 30 20 20 20
    30 0 30 20 20 20
    30 30 0 20 20 20
    20 20 20 0 86 86
    20 20 20 86 0 86
    20 20 20 86 86 0
    
    예상 출력
    546