K - Game in Advertisement 2
問題文
Mari ちゃんは SNS で見た広告のゲームに興味を持ったので、インストールしてプレイしてみることにしました。
ゲームでは $M$ 本の車線からなる道路が画面手前から奥に伸びており、左から順に車線 $j = 1,2,...,M$ と番号が振られています。
武器を持った兵士の集団である「軍隊」を適切な車線に移動させることで、軍隊の戦力をできるだけ大きくすることがこのゲームの目的です。
軍隊は「人員」を表す変数 $a$ と「武器威力」を表す変数 $b$ の、$2$ つのパラメータを持っています。
現在時刻 $i = 0$ で軍隊は車線 $1$ にいて、人員は $a=1$、武器威力は $b=1$ です。
軍隊は整数 $n$ を用いて $i = n + 0.5$ と表される時刻にのみ、好きな車線に移動させることが可能です。
これから時刻 $i = 1,2,...,N$ に、各車線にゲートまたはタルが流れてきます。
この情報は整数 $A_{i,j}$ で与えられ、次のような意味を持ちます。
- $A_{i,j}\neq0$ のとき、時刻 $i$ において、車線 $j$ に整数 $A_{i,j}$ が書かれたゲートが流れてくることを意味する。
時刻 $i$ において車線 $j$ に軍隊がいる場合にこのゲートを通ることになり、通ると $a$ に $A_{i,j}$ が加算される。
つまり、ゲートに書かれた整数の分だけ、軍隊の人員が増減する。
ゲートを通ったことによって $a\leq0$ となってしまう場合、この時点でゲームオーバーになる。 - $A_{i,j} = 0$ のとき、時刻 $i$ において、車線 $j$ にタルが流れてくることを意味する。
時刻 $i$ において車線 $j$ に軍隊がいる場合にこのタルを破壊することができ、破壊すると中身のアタッチメントにより、$b$ に $1$ が加算される。
つまり、軍隊の武器威力が $1$ 増加する。
さて、軍隊の戦力 $X$ は $X = a^2b$ で定義されます。
時刻 $i = N + 1$ における軍隊の戦力 $X$ を最大化してください。ただし、どのように行動しても途中でゲームオーバーになってしまう場合はその旨を報告してください。
なお、制約から出力すべき値が $1.5\times10^{18}$ 以下であることが証明できます。
制約
- 入力は全て整数
- $1\leq N\leq10^5$
- $1\leq M\leq5$
- $|A_{i,j}|\leq100\ (1\leq i\leq N,1\leq j\leq M)$
部分点
この問題には、部分点が設定されている。部分点の採点方法については、コンテストトップ を参照すること。
- ($100$ 点)
- $N \leq10$
- ($200$ 点)
- $N \leq1000$
- ($400$ 点)
- 追加の制約はない。
入力
入力は以下の形式で標準入力から与えられる。
$A_{1,1}$ $A_{1,2}$ $\ldots$ $A_{1,M}$
$A_{2,1}$ $A_{2,2}$ $\ldots$ $A_{2,M}$
$\vdots$
$A_{N,1}$ $A_{N,2}$ $\ldots$ $A_{N,M}$
出力
時刻 $i = N + 1$ における軍隊の戦力 $X$ の最大値を $1$ 行に出力せよ。
ただし、その前にゲームオーバーとなる場合には $-1$ を出力せよ。
5 2
0 1
3 -2
0 0
-6 7
5 0
768
最適な行動を次に示します。
- 時刻 $0.5$ に車線 $1$ に移動させ、時刻 $1$ にタルを破壊して武器威力を $1$ 増加させます。
- 時刻 $1.5$ に車線 $1$ に移動させ、時刻 $2$ にゲートを通って人員を $3$ 人増加させます。
- 時刻 $2.5$ に車線 $2$ に移動させ、時刻 $3$ にタルを破壊して武器威力を $1$ 増加させます。
- 時刻 $3.5$ に車線 $2$ に移動させ、時刻 $4$ にゲートを通って人員を $7$ 人増加させます。
- 時刻 $4.5$ に車線 $1$ に移動させ、時刻 $5$ にゲートを通って人員を $5$ 人増加させます。
以上の行動後、時刻 $6$ において人員は $16$ 人、武器威力は $3$ となるので、戦力は $16^2\times3=768$ となります。
4 1
3
5
-20
100
-1
どのように行動しても,時刻 $3$ で人員が $0$ 人以下になります.
10 5
-10 0 1 3 -1
0 16 4 -14 15
-12 -15 -11 -9 -20
0 3 7 -9 16
-2 0 -11 0 8
-1 0 -19 -10 -3
3 0 -2 1 -10
0 4 2 9 7
0 15 -4 12 19
-14 -3 12 6 7
20736