はまやんはまやんはまやん

hamayanhamayan's blog

Takahashikun, The Strider [AtCoder Grand Contest 046 A]

https://atcoder.jp/contests/agc046/tasks/agc046_a

解説

https://atcoder.jp/contests/agc046/submissions/14511770

まず自明な所から考えてみると、
X=180, X=90, X=60みたいな正多角形で内角が整数であるものは360/Xが答えになっている。
X=100のような、360/Xが整数にならない場合が問題。
場合分けするのも大変なので、一旦全部まとめて考えられるような式が立てられないか考えると、
角度は360でも720でも変わらないみたいな性質を使うと、
「XKが360の倍数であるようなKで戻ってくるのでは?」
という仮定ができる。
なので、XKが360の倍数となるKの最小値が答えっぽい。
普通のコンテストならこの仮定でつっこんでもいいが、AGCなので、
かつ、Xも179通りしかないので、実験コードで確認してから出すと確実かもしれない。
(ランキングをチラ見して、爆速でみんな通しているので、つっこむ戦略もいいかも)

int X;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> X;

    int K = 1;
    while (K * X % 360 != 0) K++;
    cout << K << endl;
}