ARC153C - ± Increasing Sequence

問題文

リンク:

解説

$${p=(1, 2, \cdots, N)}$$に対して次の操作を好きな回数施しても,$${p}$$は狭義単調増加なままです.

  • $${p}$$の prefix に -1 を足す.

  • $${p}$$の suffix に 1 を足す.

簡単のため,$${s=\sum_{i=1}^N p_i A_i\gt 0}$$とします.

$${\sum_{i=1}^{pp} A_i=1}$$なる$${pp}$$,または$${\sum_{i=y}^{sn} A_i=-1}$$なる$${sn}$$が見つかれば,条件を満たす$${x}$$を構築できます.実際,$${x\leftarrow p}$$とした後,$${1\le i\le pp}$$に対して$${x_i\leftarrow p_i+s}$$とするか,$${sn\le i\le N}$$に対して$${x_i\leftarrow p_i-s}$$とすればよいです.$${s}$$は高々$${N^2\le 10^{10}}$$なので,$${|x_i|\le 10^{12}}$$を満たすことができます.

$${pp, sn}$$が存在しないときは,最初に示した操作を行っても$${s}$$は減少しません.ところで,最初に示した操作によって,$${p}$$を任意の狭義単調増加列に変化させることができます.したがって,任意の狭義単調増加列に対して$${s\gt 0}$$になります.すなわち,$${pp, sn}$$が存在しないときは条件を満たす$${x}$$が存在しません.

$${s\lt 0}$$の場合も同様に考えて存在判定・構築をすることができます.

提出コード

この記事が気に入ったらサポートをしてみませんか?