페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#1677

경로찾기 1초 256MB

문제

N × N 이차원 배열 A가 있고 A의 각 원소는 -100부터 100 사이의 임의의 정수 값을 갖는다. 

이 이 차원 배열의 A[1][1]부터 시작하여 인접한 원소들을 방문해 가면서 A[N][N]에 이르는 경로를 선택하 려 하는데 아래와 같은 제약 조건이 있다.

 

1. 위쪽으로는 이동할 수 없고 왼쪽, 오른쪽, 아래쪽으로만 이동할 수 있다. 2. 한 번 방문한 원소는 다시 방문할 수 없다.

 

이러한 제약을 만족하면서 임의의 경로를 따라 A[N][N]에 이르면 이 경로 상에 방문되었던 원소들의 값의 총합이 그 경로의 점수가 된다. 

임의의 N × N 이차원 배열이 주어질 때, A[1][1]에서 A[N][N]에 이르는 경로 중 가장 점수가 높은 경로의 점수를 찾는 프로그램을 작성하시오.

 

<그림 1>은 N=5인 경우 가능한 경로들의 예이다. 

왼쪽 그림과 같이 원소들을 방문하는 경우 그 점수는 319가 되고, 오른쪽 그림과 같이 원소들을 방문하는 경우 그 점수는 145가 된다.

 

 

<그림 2>는 제약조건을 만족하지 못하는 경로들의 예이다. 

첫 번째 예는 위쪽으로 이동함으로써 제약 조건을 어긴 것이고, 

두 번째 예는 한 번 방문한 원소를 다시 방문함으로써 제약 조건을 만족하지 못한다.

 

 

 

 


입력

첫째 줄에는 이차원 배열의 크기를 나타내는 정수 N(5≤N≤1,000)이 주어진다.

다음 N개의 줄에는 각각의 N개의 정수(-100이상 100이하)가 주어진다. 

둘째 줄에 는 A[1][1]~A[1][N], 셋째 줄에는 A[2][1]~A[2][N], …… , N+1번째 줄에는 A[N][1]~A[N][N]의 값이 주어진다.


출력

첫 번째 줄에 가장 점수가 높은 경로의 점수를 출력한다.

예제1

입력
5

10257813
6824-786332
12-69100-29-25
-16-22-57-3399
7-76-117715
출력
319

출처

KOI 전국 2002 고1

역링크