最終更新: 2020-12-23T00:48+0900
まだ AC をもら
gets puts$<.map{|ln| n,s,k = ln.split.map(&:to_i) ss = {0=>m=0} until ss[s] ss[s] = s m -= (s-n)/k s += (s-n)/k*-k s %= n end next s == 0 ? m : -1 }
これはサンプルの4つのケ998244353 897581057 595591169
にもたぶん正しい答えを返すだろうけど、答えがおよそ 250 メガなので数分単位の時間がかかるはず。
N と S と K の3つの数字があるけど、N と K が近接していてしかもべらぼうに値が大きい。ル
1回のイテレ
K が2より大きければ(N との関係にもよるが)すべての偶数地点を網羅できるとは限らないが、K が最小の偶数2であ
N と K と S の関係をどういう式で表すのかなあ。LCM だか GCD だかのキ
K = N%K という風に再帰的に K を更新していくと最後は 0 に落ち着く。K が 0 になるまでに S をどうにかしたものが K で割り切れれば答えは N/K の倍数±α になりそうなんだけど、S をどうするのか、N-S をどうにかするのか、よくわからない。