No.3207 Digital Font
レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 29
作問者 :
amesyu
/ テスター :
noshinn
lmorinn
遭難者
タグ : / 解いたユーザー数 29
作問者 :

問題文最終更新日: 2025-07-19 00:18:10
ストーリー
上の画像のようなフォントでは 0
,1
,2
,5
,8
は点対称なので180度回転させても変化しません。
一方で、 6
,9
は180度回転するとそれぞれ 9
,6
と変化します。
3
,4
,7
は読めませんね〜
問題文
$H$ 行、$W$ 列である行列 $A$ があります。 $A_{i,j}$ は $i$ 行目 $j$ 列目の値を表します。
$A$ の各要素は $k = 1, 2 \cdots, N$ に対し、 $A_{i_k, j_k} = x_k$ であり、それ以外の要素は $0$ です。
$Q$ 個のクエリが以下の形式で与えられられるので順に処理してください。
l d r u
の形式で与えられる。 行が $l$ から $r$ 、列が $d$ から$u$ の範囲内にある要素からなる、行列 $A$ の部分行列が点対称であればYes
、そうでなければNo
を出力せよ。
行列が点対称である定義
-
$x \ ( x \in \{0, 1, 2, 5, 6, 8, 9 \} )$ を $180$ 度回転する関数 $f(x)$ を以下のように定義します。
$$ f(x) = \begin{cases} 0 & \text{if } x = 0 \\ 1 & \text{if } x = 1 \\ 2 & \text{if } x = 2 \\ 5 & \text{if } x = 5 \\ 9 & \text{if } x = 6 \\ 8 & \text{if } x = 8 \\ 6 & \text{if } x = 9 \end{cases} $$ このように定義される $f(x)$ を用いて、すべての $(i, j) \ (l \leq i \leq r, d \leq j \leq u)$ について $A_{i, j} = f(A_{r+l-i, u+d-j})$ が成り立てばYes
、そうでなければNo
を出力してください。
制約
- $1 \leq H, W \leq 10^5$
- $0 \leq N \leq \text{min}(HW, 10^5)$
- $1 \leq i_k \leq H$
- $1 \leq j_k \leq W$
- $x_k \in \{0, 1, 2, 5, 6, 8, 9 \}$
- $(i_k, j_k)$ の組は相違なる
- $1 \leq Q \leq 10^5$
- $1 \leq l \leq r \leq H$
- $1 \leq d \leq u \leq W$
- 入力はすべて整数
入力
$H$ $W$ $N$ $i_1$ $j_1$ $x_1$ $i_2$ $j_2$ $x_2$ $\vdots$ $i_N$ $j_N$ $x_N$ $Q$ $l_1 \ d_1 \ r_1 \ u_1$ $l_2 \ d_2 \ r_2 \ u_2$ $\vdots$ $l_Q \ d_Q \ r_Q \ u_Q$
出力
$Q$ 行出力せよ。 $i$ 行目には $i$ 個目のクエリに対する答えを出力せよ。
サンプル
サンプル1
入力
5 7 14 1 1 2 1 3 6 1 4 9 1 5 8 3 1 1 3 2 5 3 4 5 3 5 1 3 7 2 5 1 8 5 2 6 5 3 9 5 5 2 5 7 1 7 1 1 5 5 1 1 5 7 3 5 5 7 2 2 2 7 1 3 5 3 5 1 5 1 1 5 3 5
出力
Yes No Yes Yes Yes Yes No
サンプル2
入力
100000 100000 0 1 1 1 100000 100000
出力
Yes
$N = 0$ の場合もあります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。