포럼
문제 USACO0686

플러스와 마이너스

설명

농부 존은 예전에 목초지 바닥에 직사각형 격자를 그려 놓았다. 각 칸에 그는 \(+\) 또는 \(−\) (각각 \(+1\)\(−1\)을 나타냄)를 칠했다.

시간이 지나면서 페인트가 바래서, 농부 존은 이제 일부 칸의 값만 기억한다. 하지만 농부 존은 원래 그림에 대한 한 가지 중요한 사실을 기억하고 있다.

모든 행과 모든 열에서, 임의의 연속 부분 구간의 값의 합은 항상 \(−1\) 이상 \(2\) 이하였다.

예를 들어, 행 \(\texttt{+ - - +}\)를 생각해 보자. 부분 구간 \(\texttt{+ [ - - ] +}\)의 합이 \(-2\)이므로 이 행은 조건을 만족하지 않는다.

반면, 행 \(\texttt{- + + -}\)는 조건을 만족한다.

[ - ] + + -    sum = -1
[ - + ] + -    sum = 0
[ - + + ] -    sum = +1
[ - + + - ]    sum = 0
- [ + ] + -    sum = +1
- [ + + ] -    sum = +2
- [ + + - ]    sum = +1
- + [ + ] -    sum = +1
- + [ + - ]    sum = 0
- + + [ - ]    sum = -1

농부 존의 기억과 일치하는 서로 다른 격자의 개수를 세어라.

Problem credits: Alex Chen

제약

SCORING

  • 입력 3-4: 모든 테스트에서 \(\min(R,C)=1\)
  • 입력 5-6: 모든 테스트에서 \(R,C\le 10\)
  • 입력 7-11: \(\sum \max(R,C)^2 \le 10^6\)
  • 입력 12-14: \(\sum RC \le 10^6\)
  • 입력 15-22: 추가 제약 없음.

Problem credits: Alex Chen

입력 형식

첫째 줄에 독립적인 테스트의 수 \(T\) (\(1\le T\le 100\))가 주어진다. 각 테스트는 다음과 같이 주어진다.

첫째 줄에 \(R\), \(C\), \(X\) (\(1\le R,C\le 5\cdot 10^5\), \(0\le X\le \min(10^5,RC)\))가 주어지며, 이는 격자의 크기가 \(R\times C\)이고 농부 존이 격자에서 서로 다른 \(X\)개 칸의 값을 기억함을 의미한다.

다음 \(X\)개의 줄에 각각 문자 \(v\in \{+, -\}\)와 두 정수 \(r\), \(c\) (\(1\le r\le R, 1\le c\le C\))가 주어지며, 이는 격자의 \(r\)번째 행, \(c\)번째 열의 값이 \(v\)임을 의미한다. 하나의 테스트 안에서 어떤 순서쌍 \((r,c)\)도 두 번 이상 나타나지 않음이 보장된다.

또한, 모든 테스트에 걸친 \(R\)의 합과 \(C\)의 합이 각각 \(10^6\)을 넘지 않고, 모든 테스트에 걸친 \(X\)의 합이 \(2\cdot 10^5\)를 넘지 않음이 보장된다.

출력 형식

각 테스트에 대해, 격자의 개수를 한 줄에 하나씩 출력한다.

예제 1
입력
2
1 3 3
+ 1 3
+ 1 1
- 1 2
1 3 3
+ 1 1
+ 1 3
+ 1 2
출력
1
0
예제 2
입력
1
2 2 0
출력
7
설명

Here are the seven grids:

++
++

++
+-

++
-+

+-
++

+-
-+

-+
++

-+
+-
문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2025-2026 > First Contest > Platinum

태그

평가 및 의견

Pluses and Minuses

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Pluses and Minuses

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8