公式
C - Infinity 解説
by
C - Infinity 解説
by
ytqm3
実は \(1 \le \max(A)\) ならば Yes であり、そうでない(\(A_N \le 0\))ならば No です。
No の場合についてはどう操作しても \(A_i \le 0\) のままであることから不可能です。
Yes の場合について考えます。ここで、 \(\max(A) = A_m > 0\) であるとし、 \(m \neq 1\) の場合を考えます。 \(a \neq 1, m\) なる \(a\) を一つ取り、以下の操作を考えます。
- \(A_{a} \leftarrow A_{1} + A_m\) とする。
- \(A_{1} \leftarrow A_{a} + A_m\) とする。
すると、 \(A_{1}\) が操作一回で \(2A_m\) 大きくなるので、この操作を繰り返し行えば \(A_{1}\) をいくらでも大きくすることができることが分かります。
\(m=1\) の場合は、同様に一度 \(A_{2}\) を十分大きくした後、 \(A_1 \leftarrow A_{2} + A_{3}\) などとすれば良いです。
以上よりこの問題を \(O(N)\) で解くことができます。
投稿日時:
最終更新:
