LIGHT OJ-1294 Positive Negative Sign

来源:互联网 发布:小乔丹生涯数据 编辑:程序博客网 时间:2024/05/16 12:28

F - Positive Negative Sign

Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu
Submit

Status
Description
Given two integers: n and m and n is divisible by 2m, you have to write down the first n natural numbers in the following form. At first take first m integers and make their sign negative, then take next m integers and make their sign positive, the next m integers should have negative signs and continue this procedure until all the n integers have been assigned a sign. For example, let n be 12 and m be 3. Then we have

-1 -2 -3 +4 +5 +6 -7 -8 -9 +10 +11 +12

If n = 4 and m = 1, then we have

-1 +2 -3 +4

Now your task is to find the summation of the numbers considering their signs.

Input
Input starts with an integer T (≤ 10000), denoting the number of test cases.

Each case starts with a line containing two integers: n and m (2 ≤ n ≤ 109, 1 ≤ m). And you can assume that n is divisible by 2*m.

Output
For each case, print the case number and the summation.

Sample Input
2

12 3

4 1

Sample Output
Case 1: 18

Case 2: 2

Hint
Find formula


  1. 题意:n代表-1+2-3+4-……..+n的一个序列,n%(2m)=0,求序列的和;
  2. 思路:每2m个数一循环,每个循环的和都是m;
  3. 失误 : 格式要注意,提交前要检查无误;
  4. 代码如下:

#include<cstdio>#include<iostream>using namespace std;int main(){    __int64 t,n,m,s,k=0;    cin>>t;    while(t--)    {        cin>>n>>m;        s=m*(n/2/m);        cout<<"Case "<<++k<<": ";         cout<<s<<endl;    }    return 0;}
0 0