만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

표지판 따라가기

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

요약
각 칸의 소가 표지판을 따라 가장자리의 먹이 통까지 이동하는 총 비용을 구하고, 표지판을 뒤집을 때마다 갱신된 비용을 출력합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Farmer John의 큰 정사각형 밭은 (N+1)×(N+1)(N+1)\times (N+1) (1≤N≤15001\le N\le 1500) 격자로 나뉘어 있습니다. 셀 (i,j)(i, j)는 위에서 ii번째 행, 왼쪽에서 jj번째 열의 셀을 뜻합니다. 1≤i,j≤N1 \le i, j \le N인 모든 셀 (i,j)(i, j)에는 소 한 마리가 살고 있고, 오른쪽 또는 아래를 가리키는 표지판이 있습니다. (N+1,N+1)(N+1, N+1)을 제외하고 i=N+1i=N+1 또는 j=N+1j=N+1인 모든 셀에는 사료 통이 있습니다. (i,j)(i, j)의 사료 통은 소 한 마리에게 먹이는 데 ci,jc_{i,j} (1≤ci,j≤5001 \le c_{i,j} \le 500)가 듭니다.

매일 저녁 식사 시간에 Farmer John이 종을 울리면, 각 소는 표지판을 따라 사료 통에 도착할 때까지 이동하고 그 통에서 먹이를 받습니다. 그다음 소들은 다음 날을 위해 원래 자리로 돌아갑니다.

Farmer John은 매일 모든 소에게 먹이를 주는 데 드는 총비용을 알고 싶어 합니다. 매일 저녁 식사 전에, 셀 (i,j)(i, j)의 소가 자기 표지판의 방향을 뒤집습니다(오른쪽에서 아래로, 또는 아래에서 오른쪽으로). 표지판은 다시 뒤집히기 전까지 이후 날에도 새 방향을 유지합니다.

매일 뒤집히는 표지판의 셀이 주어지면, 그날의 비용을 출력하세요. 총 QQ일입니다.

입력

첫 줄에 NN (1≤N≤15001 \le N \le 1500)이 주어집니다. 다음 N+1N+1개 줄은 위에서 아래 순서로 격자를 나타냅니다. 처음 NN개 줄은 길이 NN의 방향 문자열(오른쪽이면 R, 아래면 D)과 그 뒤에 붙는 비용 ci,N+1c_{i,N+1}로 이루어집니다. 마지막 줄에는 NN개의 비용 cN+1,jc_{N+1,j}가 주어집니다. 다음 줄에 QQ (1≤Q≤15001 \le Q \le 1500)가 주어집니다. 이어서 QQ개의 줄에 각각 두 정수 ii, jj (1≤i,j≤N1 \le i, j \le N)가 주어지며, 그날 방향이 뒤집히는 표지판의 좌표입니다.

출력

Q+1Q+1개의 줄을 출력합니다. 첫 줄은 처음의 총비용이고, 이어지는 QQ개의 줄은 각 뒤집기 후의 총비용입니다.

힌트

처음 뒤집기 전에는 (1,1)(1, 1)과 (1,2)(1, 2)의 소가 각각 1, (2,1)(2, 1)의 소가 100, (2,2)(2, 2)의 소가 500의 비용이 들어 총 602입니다. 첫 번째 뒤집기 후에는 (1,1)(1,1)의 표지판이 R에서 D로 바뀌어 (1,1)(1, 1)의 소가 100의 비용이 들고, 나머지는 그대로이므로 총 701이 됩니다. 두 번째와 세 번째 뒤집기는 같은 표지판을 다시 뒤집어 값이 오갑니다. 네 번째 뒤집기 후에는 (1,1)(1, 1)과 (2,1)(2, 1)의 소가 모두 500의 비용이 들어 총 1501이 됩니다.

예제1

  1. 예제 1

    입력
    2
    RR 1
    DD 10
    100 500
    4
    1 1
    1 1
    1 1
    2 1
    
    예상 출력
    602
    701
    602
    701
    1501