CF1778A.Flip Flop Sum
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array of n integers a1,a2,…,an. The integers are either 1 or −1. You have to perform the following operation exactly once on the array a:
- Choose an index i (1≤i<n) and flip the signs of ai and ai+1. Here, flipping the sign means −1 will be 1 and 1 will be −1.
What is the maximum possible value of a1+a2+…+an after applying the above operation?
给你一个包含 n 个整数的数组 a1,a2,…,an,其中每个整数均为 1 或 −1。你必须在数组 a 上恰好执行一次如下操作:
- 选择一个下标 i(满足 1≤i<n),并翻转 ai 和 ai+1 的符号。这里,“翻转符号”指将 −1 变为 1,将 1 变为 −1。
执行上述操作后,a1+a2+…+an 的最大可能值是多少?
输入格式
Each test contains multiple test cases. The first line contains the number of test cases t (1≤t≤500). Description of the test cases follows.
The first line of each test case contains a single integer n (2≤n≤105), the length of the array a.
The next line contains n integers a1,a2,…,an (ai=1 or ai=−1).
The sum of n over all cases doesn't exceed 105.
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤500)。随后是各测试用例的描述。
每个测试用例的第一行包含一个整数 n(2≤n≤105),表示数组 a 的长度。
下一行包含 n 个整数 a1,a2,…,an(其中每个 ai=1 或 ai=−1)。
所有测试用例的 n 值之和不超过 105。
输出格式
For each test case, print the maximum possible sum of the array a you can get in a separate line.
对于每个测试用例,在单独的一行中输出你能得到的数组 a 的最大可能和。
输入输出样例
输入#1
4 5 -1 1 1 -1 -1 5 1 1 -1 -1 -1 2 1 1 4 1 -1 -1 1
输出#1
3 3 -2 4
说明/提示
In the first case, we can choose index 4 and flip the signs of a4 and a5. After this operation, the sum will be −1+1+1+1+1=3. We can't make the sum larger than this.
In the third case, the only option is to choose the index 1.
在第一种情况下,我们可以选择索引 4,并翻转 a4 和 a5 的符号。执行此操作后,和为 −1+1+1+1+1=3。我们无法使和大于该值。
在第三种情况下,唯一可选的索引是 1。
输入解题思路,AI测评打分。不知道怎么写?