19. 보도블럭

View as PDF

Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

임의의 정수가 쓰여진 \(N × 2\)개의 보도블럭이 격자형태로 놓여 있다.

보도블럭 위를 그냥 걷기에는 너무 심심하기 때문에

밟고 지나간 보도블럭들에 적힌 수의 합을 최대화하고 싶다.

단, 걸음을 걸을 때는 앞으로 한 행씩 나아가야 하고, 칸 안쪽을 정확히 밟아야 한다.

그리고 넘어질 위험이 있으므로 두 다리가 교차되게 걸으면 안 된다.

다시 말해, 연속된 두 행에 있는 오른발이 밟은 칸은 왼발이 밟은 칸보다 왼쪽에 있으면 안 된다.(반대도 마찬가지다.)

위 그림은 \(N = 5\)에서의 잘못된 예시 2가지와 가능한 예시 2가지를 나타내고 있다.

보도블럭에 적힌 정수들이 주어질 때, 밟고 지나간 보도블럭에 적힌 정수들의 합을 최대화하는 프로그램을 작성해보자.

첫 행은 왼발이나 오른발 중 어느 쪽으로 시작해도 무방하며, 좌우 두 칸 중에 아무 칸에서나 출발해도 상관없다.

입력

  • 첫 번째 줄에 \(N\)이 주어진다.\((1 ≤ N ≤ 10000)\)
  • 두 번째 줄부터 \(N\)개의 줄에 첫 행(첫 걸음을 내딛는 행)부터 마지막 행(걸음이 끝나는 행)까지 왼쪽 칸의 정수와 오른쪽 칸의 정수가 차례대로 주어진다. 주어지는 값은 \(-1000\) 이상 \(1000\) 이하이다.

출력

  • 밟고 지나간 보도블럭들에 적힌 정수의 합의 최댓값을 출력한다.

입력 예시 1

4
1 2
2 1
2 1
1 2

출력 예시 1

7

Comments

There are no comments at the moment.