# No.11 カードマッチ (http://yukicoder.me/problems/30) # 1行目に、トランプのマークの種類を表す整数W (1≤W≤1,000,000) が与えられます。 w = gets.to_i # 2行目に、トランプの数値の最大値を表す整数H (1≤H≤1,000,000)が与えられます。 h = gets.to_i # 3行目に、手元にあるカードの枚数を表す整数N (1≤N≤min(W×H,100))が与えられます。 n = gets.to_i mark = Array.new num = Array.new # 続くN行に、手元にあるカードのマークと数値を表すSi (1≤Si≤W) および Ki (1≤Ki≤H) が空白区切りで与えられます。 n.times { s, k = gets.chomp().split().map(&:to_i) mark.push s num.push k } same_mark = (mark.uniq.size * h) - mark.size # 同一マークで手持ち以外に一致する枚数 same_num = (w - mark.uniq.size) * num.uniq.size # 同一数値で手持ち以外に一致する枚数 puts same_mark + same_num