#737
Unrated
더하기와 빼기
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

지안이는 예전에 마당의 격자판에 +1+1을 뜻하는 + 또는 1-1을 뜻하는 -를 하나씩 그려 넣었다.

시간이 흘러 색이 바랬고, 지안이는 이제 일부 칸의 값만 기억한다. 하지만 지안이는 원래 격자판에 대해 다음과 같은 한 가지 중요한 사실을 기억하고 있다.

모든 행과 모든 열에 대해, 임의의 연속된 부분 구간의 합은 항상 1-1 이상 22 이하(12-1 \le \text{합} \le 2)였다.

예를 들어, 어떤 행의 값이 + - - +인 경우를 생각해보자. 이 경우 부분 구간 + [ - - ] +의 합이 2-2이므로 조건을 만족하지 않는다.

반면, 행의 값이 - + + -인 경우에는 다음과 같이 조건을 만족한다.

  • [ - ] + + - 합 = 1-1
  • [ - + ] + - 합 = 00
  • [ - + + ] - 합 = +1+1
  • [ - + + - ] 합 = 00
  • - [ + ] + - 합 = +1+1
  • - [ + + ] - 합 = +2+2
  • - [ + + - ] 합 = +1+1
  • - + [ + ] - 합 = +1+1
  • - + [ + - ] 합 = 00
  • - + + [ - ] 합 = 1-1

지안이의 기억과 일치하는 서로 다른 격자판의 개수를 구하시오.

입력

첫째 줄에 독립적인 테스트 케이스의 개수 TT가 주어진다. (1T1001 \le T \le 100)

각 테스트 케이스의 첫째 줄에는 격자의 행 개수 RR, 열 개수 CC, 그리고 지안이가 기억하는 칸의 개수 XX가 공백으로 구분되어 주어진다. (1R,C51051 \le R, C \le 5 \cdot 10^5; 0Xmin(105,R×C)0 \le X \le \min(10^5, R \times C))

이어지는 XX개의 줄에는 문자 v{+,}v \in \{+, -\}와 두 정수 r,cr, c가 공백으로 구분되어 주어진다. (1rR1 \le r \le R; 1cC1 \le c \le C) 이는 rrcc열의 값이 vv임을 의미한다. 한 테스트 케이스 내에서 동일한 (r,c)(r, c) 쌍이 두 번 이상 주어지지 않음이 보장된다.

또한, 모든 테스트 케이스에 대해 RR의 합과 CC의 합은 각각 10610^6을 초과하지 않으며, XX의 합은 21052 \cdot 10^5를 초과하지 않음이 보장된다.

출력

각 테스트 케이스마다 지안이의 기억과 일치하는 격자판의 개수를 한 줄에 하나씩 출력한다.

예제 입력 1

2
1 3 3
+ 1 3
+ 1 1
- 1 2
1 3 3
+ 1 1
+ 1 3
+ 1 2

예제 출력 1

1
0

예제 입력 2

1
2 2 0

예제 출력 2

7

점수

  • 테스트 케이스 3-4: 모든 테스트 케이스에 대해 min(R,C)=1\min(R, C) = 1
  • 테스트 케이스 5-6: 모든 테스트 케이스에 대해 R,C10R, C \le 10
  • 테스트 케이스 7-11: max(R,C)2106\sum \max(R, C)^2 \le 10^6
  • 테스트 케이스 12-14: R×C106\sum R \times C \le 10^6
  • 테스트 케이스 15-22: 추가적인 제약 조건 없음.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.