AtCoder Beginner Contest 256 C問題 Filling 3x3 array
問題
提出解答
問題の概要
3行3列からなるマス目がある. この 個のマス目のそれぞれに整数を書くとき, 以下を全て満たすような整数の書き込み方は何通りか?
- 整数は全て正の整数.
- 上から 行目に書いた 個の整数の総和は である ().
- 左から 列目に書いた 個の整数の総和は である ().
制約
解法
上から 行目, 左から 列目に書く整数を と書くことにする. このとき, 以下がわかる.
4つの整数 に対して, となる条件を満たすような書き込みは存在するならば一意である.
実際, は書き込みが存在するならば,
でなくてはならない.
また, 書き込み整数は正なので, としたとき, 以上 以下でなくてはならない.
このことから, として 以上 以下の整数を割り当てたそれぞれの場合において, 上で定めた が条件を満たすかどうかを見ればよい. 具体的に調べなくては行けない条件は
である.
計算量は であり, なので, 十分高速に計算できる.