CF1718C Tonya and Burenka-179

题目描述

Tonya 收到了一个长度为 $ n $ 的数列,写在了他的生日卡片上。出于某种原因,这个卡片原来是一个循环数组,所以严格位于第 $n$ 个元素右侧的元素的下标是 $ 1 $ 。Tonya 想更好地研究它,所以他买了一个机器人 `Burenka-179`。 Burenka 的程序是一个数对 $ (s, k) $ ,其中 $ 1 \leq s \leq n $ , $ 1 \leq k \leq n-1 $ 。请注意,$k$ 不能等于 $n$。最初,Tonya 将机器人放在数组 $ s $ 的位置。之后,Burenka 在数组中准确地向前或者向后走了 $ n $ 步。如果在开始的时候,Burenka 站在 $i$ 的位置,那么会发生以下情况: 1. 数字$a_{i}$被加入到了到程序的有用值中。 2. Burenka 向右移动了 $k$ 步( 一般情况下 $ i := i + k $ ,如果 $ i $ 变得大于 $ n $ ,则 $ i := i - n $ )。 如果任何程序的初始有用值为 $ 0 $ ,则帮助 Tonya 算出程序最大可能的有用值。 此外,Tonya 的朋友 Ilyusha 要求他更改数组 $ q $ 次。每次他想为给定下标 $ p $ 和值 $ x $ 分配 $ a_p := x $ 。在每次进行这些更改之后,你得再次算出程序的最大可能有用值。

输入格式

第一行包含单个整数 $ t $ ( $ 1 \le t \le 10^4 $ ) 是测试用例的数量。测试用例的描述如下。 每个测试用例的第一行包含两个整数 $ n $ 和 $ q $ ( $ 2 \le n \le 2 \cdot 10^5 $ , $ 0 \le q \le 2 \cdot 10^5 $ )。 每个测试用例的第二行包含 $ n $ 个整数, $ a_1, a_2, \ldots, a_n $ ( $ 1 \le a_i \le 10^9 $ ) — 数组的元素。 以下 $ q $ 行每行代表了更改操作,每行包含两个整数 $ p $ 和 $ x $ ( $ 1 \leq p \leq n $ , $ 1 \leq x \leq 10^9 $ ),意味着你应该分配$ a_p := x $ 。 保证所有测试用例的 $ n $ 和 $ q $ 的总和不超过 $ 2 \cdot 10^5 $ 。

输出格式

对于每个测试用例,输出 $ q+1 $ 个数字——程序最初和每次更改后的最大有用值。

说明/提示

在第一个测试用例中,最初时和更改后时,可以在 $ s = 1 $ 、 $ k = 1 $ 或 $ s = 2 $ 、 $ k = 1 $ 处找到答案。 在第二个测试用例中,最初,当 $ s = 1 $ , $ k = 2 $ 或 $ s = 3 $ , $ k = 2 $ 时得到答案。在第一次更改之后,在 $ s = 2 $ , $ k = 2 $ 或 $ s = 4 $ , $ k = 2 $ 处找到答案。