yukicoder No.11 カードマッチ
問題
解説
H×Wのマス目を考えればよい。
#input
5
6
2
1 3
2 5
W = 5, H = 6, N = 2で,手持ちのカードが(1,3), (2,5)だとする。(1,3)とマッチするカードを図示すると以下の図の灰色の部分。(赤マスは(1,3) )
次に,(2,5)とマッチする部分を追記すると
求めるるのは,この図の灰色のマスの個数である。そのために,灰色の部分を端に寄せると以下のようになる。
こうすれば数えやすい。全体から白いマスと赤,青を引けば良い。全マスの数はH×W = 30, 白マスは(H-2)×(W-2)=12, 赤と青の2マス。である。ここで赤と青のマスの数は最初の入力でNとして与えられていることに注意したい。また,赤マスと青マスのマークや数字が一致しているときは注意が必要であるが,入力として与えれた手札のカードのマークの種類数,数字の種類数をカウントすればよい。
実装
W = int(input())#マークの種類
H = int(input())#数字カードの最大値
N = int(input())
SK = [0 for _ in range(N)]
A = set()
B = set()
for i in range(N):
a,b = map(int,input().split())
A.add(a)
B.add(b)
print(H*W-(W-len(A))*(H-len(B)) - N)