Skip to content

CodeForces 1353 A. Most Unstable Array#

目录#

1. 题目描述#

1.1. Limit#

Time Limit: 1000 ms

Memory Limit: 256 MB

1.2. Problem Description#

You are given two integers and . You have to construct the array of length consisting of non-negative integers (i.e. integers greater than or equal to zero) such that the sum of elements of this array is exactly and the value is the maximum possible. Recall that is the absolute value of .

n other words, you have to maximize the sum of absolute differences between adjacent (consecutive) elements. For example, if the array then the value above for this array is . Note that this example doesn't show the optimal answer but it shows how the required value for some array is calculated.

You have to answer independent test cases.


1.3. Input#

The first line of the input contains one integer — the number of test cases. Then test cases follow.

The only line of the test case contains two integers and — the length of the array and its sum correspondingly.


1.4. Output#

For each test case, print the answer — the maximum possible value of for the array consisting of non-negative integers with the sum .


1.5. Sample Input#

5
1 100
2 2
5 5
2 1000000000
1000000000 1000000000

1.6. Sample Output#

0
2
10
1000000000
2000000000

1.7. Notes#

the first test case of the example, the only possible array is and the answer is obviously 0.

In the second test case of the example, one of the possible arrays is and the answer is .

In the third test case of the example, one of the possible arrays is and the answer is .

1.8. Source#

CodeForces 1353 A. Most Unstable Array


2. 解读#

找规律。

时,输出

时,输出

时,输出

3. 代码#

#include <algorithm>
#include <iostream>
const long long num = 1e2 + 1;
using namespace std;

long long list[num];

int main()
{
    // test case
    long long t;
    long long n, m;
    long long ans = 0;
    // test case
    scanf("%lld", &t);
    // 输入
    while (t--) {
        scanf("%lld %lld", &n, &m);
        if (n == 1) {
            ans = 0;
        } else if (n == 2) {
            ans = m;
        } else {
            ans = 2 * m;
        }
        // 输出
        printf("%lld\n", ans);
    }
}

联系邮箱:curren_wong@163.com

Github:https://github.com/CurrenWong

欢迎转载/Star/Fork,有问题欢迎通过邮箱交流。

Back to top