2019年9月12日木曜日

AGC 022 B - GCD Sequence

AGC 022 B - GCD Sequence

xxS{x}S \setminus \{x\}が互いに素でないという条件から偶数の集合{2,4,6,...}\{2, 4, 6, ...\}を思い浮かべてみるが、そのままではSSの最大公約数が11にならないし、また、3000030000までの偶数は1500015000個しかないので数も足りていない。そこで、33を加えてSSの最大公約数を11にした上で、33の倍数を適当に加えて条件を満たすようにできないか考えてみる。1

既に特別である集合SSに、特別性を壊さないように整数を追加することを考える。まず、S{2}S\setminus \{2\}の総和が22で割り切れるようにするために、SSの中の奇数は常に偶数個を保つべきなので、33の倍数で奇数であるものは2個ずつ加えたい:

(1){3,9},{15,21},{27,33},...(1) \qquad \{3, 9\}, \{15, 21\}, \{27, 33\}, ...

また、S{3}S\setminus\{3\}の総和が33で割り切れるようにするために、追加する数は常に33の倍数を保ちたい。偶数のうち33の倍数であるもの、つまり66の倍数は1個ずつ加えることが可能である:

(2)6,12,18,...(2)\qquad 6, 12, 18, ...

偶数のうち33の倍数でないもの、つまり33を法として11または22と合同であるものは、ペアで追加すれば33の倍数になる:

(3){2,4},{8,10},{14,16},...(3) \qquad \{2, 4\}, \{8, 10\}, \{14, 16\}, ...

(1),(2),(3)(1), (2), (3)2000020000個の整数を網羅しているので、あとはS:={3,9}{2,4}S := \{3, 9\} \cup \{2,4\}をベースにしてNNに達するまで任意に加えればよい。N=3N=3の場合だけ扱えていないが、サンプルにある出力をそのまま使って対応できる。


  1. 競技としては、3000030000以下の2233の倍数である整数がちょうど2000020000個であることからメタ読みもできそう。 ↩︎