C - 魔法の宝石 2 (magical Jewels 2)
Earlgray
2
s
1024
MB
100
点
問題文
$H$ 行 $W$ 列のマス目がある.上から $i$ 行目,左から $j$ 列目のマスをマス $(i,j)$ と呼ぶことにする. 各マスには $1$ つの宝石があり,マス $(i,j)$ には種類 $s_{i,j}$ の宝石が落ちている.
ただし, 落ちている宝石の種類は A
, B
, C
, D
, E
, F
, G
, H
, I
, J
の 10 種類のうちいずれかである.
さて,JOI 君は整数 $a, b, c, d\ (1 ≤ a ≤ b ≤ H, 1 ≤ c ≤ d ≤ W)$ を選び,$a ≤ x ≤ b,\ c ≤ y ≤ d$ を満たす全てのマス $(x, y)$ にある宝石を拾う.そのとき,以下の条件を満たせば魔法が発動し,JOI 君は次の国際情報オリンピック(IOI)の日本代表になることができるだろう.
「中途半端に拾った」宝石の種類がひとつもない.より具体的には,「1 個以上その種類の宝石を拾ったが,マス目にあるその種類の宝石をすべて拾ってはいない」といった種類の宝石が存在しない.
さて,魔法が発動するような整数 $(a, b, c, d)$ の組の選び方は何通りあるか求めよ.答えは大きくなる場合があるので,64 ビット整数を扱うことを勧める.
制約
- $1 ≤ T ≤ 5$
- $1 ≤ H ≤ 1000$
- $1 ≤ W ≤ 1000$
- $s_{i,j}$ は
A
,B
,C
,D
,E
,F
,G
,H
,I
,J
のいずれかである. - $s_{i,j}$ 以外の入力は全て整数である.
この課題は,5 個の小課題から成る.
小課題 | 得点 | 内容 | 入力データ番号 | $T$ の値 |
---|---|---|---|---|
0 | - | サンプルテストケース | #0 | - |
1 | 8 | $H = 1,\ W ≤ 10$ | #1 | 5 |
2 | 14 | $H ≤ 10, W ≤ 10$ | #2 | 5 |
3 | 20 | $H ≤ 55, W ≤ 55$ | #3 | 5 |
4 | 21 | $s_{i,j}$ は A , B , C のいずれかである. |
#4 | 5 |
5 | 37 | 追加の制約はない. | #5 | 5 |
入力
各入力データについて、以下の形式で入力が与えられる。
T
(1 個目のテストケースの情報)
各テストケースについて、以下の形式で入力が与えられる.
- 1 行目に,整数 $H,W$ が空白区切りで与えられる.
- $1 + i (1 ≤ i ≤ W)$ 行目に,$s_{i,1}, s_{i,2}, s_{i,3}, ... , s_{i,W}$ が繋がった $W$ 文字の文字列が与えられる.
出力
$T$ 行に渡って出力せよ.
$i$ 行目には,$i$ 個目のテストケースにおける答えを出力せよ.
入力例 1
2
3 5
ABCDE
ABCDE
ABCDE
3 8
ABCDEFGH
BCDEFGHI
CDEFGHIJ
出力例 1
15
3
サンプルケースです