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) )

コメント 2019-12-04 210403

次に,(2,5)とマッチする部分を追記すると

コメント 2019-12-04 210516

求めるるのは,この図の灰色のマスの個数である。そのために,灰色の部分を端に寄せると以下のようになる。

コメント 2019-12-04 210635

こうすれば数えやすい。全体から白いマスと赤,青を引けば良い。全マスの数は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)

この記事が気に入ったらサポートをしてみませんか?