atcoder#AGC037C. [AGC037C] Numbers on a Circle

[AGC037C] Numbers on a Circle

题目描述

円環状に N N 個の正整数が並んでおり、それらには円環に沿った順に 1 1 から N N の番号がついています。

i i 番目の数は Ai A_i です。高橋君は i i 番目の正整数が Bi B_i となるようにしたいです。 そこで、高橋君は以下の操作を繰り返し行うことにしました。

  • 1  i  N 1\ \leqq\ i\ \leqq\ N なる整数 i i を一つ選ぶ。
  • i1,i,i+1 i-1,i,i+1 番目の数をそれぞれ a,b,c a,b,c としたとき、i i 番目の数を a+b+c a+b+c に置き換える。

ただし、0 0 番目の数は N N 番目の数を指し、N+1 N+1 番目の数は 1 1 番目の数を指すことに注意してください。

高橋君が条件をみたすように操作を行うことができるかどうか判定してください。 また可能である場合は、高橋君が行う必要のある操作回数として考えられる最小の値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 ... ... AN A_N B1 B_1 B2 B_2 ... ... BN B_N

输出格式

高橋君が行う必要のある操作回数として考えられる最小の値を出力せよ。 ただし、高橋君が条件をみたすように操作を行うことができない場合は -1 を出力せよ。

题目大意

一个环上有 NN 个正整数,一次操作可以把第 ii 个数 AiA_i 变为它左边的数、它右边的数和它本身之和,即 Ai1+Ai+Ai+1A_{i-1}+A_i+A_{i+1}A0A_0 就是 AnA_nAn+1A_{n+1}A1A_1

初始时对每一个位置 ii,第 ii 个位置上的数为 AiA_i,目标为对于每一个位置,将这个位置上的数变为 BiB_i

求最少需要几次操作,可以达到目标位置。

3
1 1 1
13 5 7
4
4
1 2 3 4
2 3 4 5
-1
5
5 6 5 2 1
9817 1108 6890 4343 8704
25

提示

制約

  • 3  N  2 × 105 3\ ≦\ N\ ≦\ 2\ \times\ 10^5
  • 1  Ai, Bi  109 1\ ≦\ A_i,\ B_i\ ≦\ 10^9
  • 入力中のすべての値は整数である

Sample Explanation 1

例えば高橋君は以下のように操作を行うことができます。 - 2 2 番目の数を 3 3 に置き換える。 - 2 2 番目の数を 5 5 に置き換える。 - 3 3 番目の数を 7 7 に置き換える。 - 1 1 番目の数を 13 13 に置き換える。