您的位置:首页 > 其它

【codeforces div2 A】Calculating Function(思维)

2016-09-29 14:19 399 查看
A. Calculating Function

time limit per test
 1 second

memory limit per test
 256 megabytes

input
 standard input

output
 standard output

For a positive integer n let's define a function f:

f(n) =  - 1 + 2 - 3 + .. + ( - 1)nn

Your task is to calculate f(n) for a given integer n.

Input

The single line contains the positive integer n (1 ≤ n ≤ 1015).

Output

Print f(n) in a single line.

Sample test(s)

input
4


output
2


input
5


output
-3


Note

f(4) =  - 1 + 2 - 3 + 4 = 2
f(5) =  - 1 + 2 - 3 + 4 - 5 =  - 3

思维题,发现中间过程的规律,本题的是每两项加一。而我开始竟然想暴力循环,显然超时了;而后又想用等差数列公式,结果是过掉了部分测试数据;我怎么这么菜。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#define LL long long
using namespace std;
int main() {
__int64 n;
while(scanf("%I64d",&n)!=EOF) {
__int64 sum=0;
if(n%2==0){
sum=n/2;
}
else{
sum=(n-1)/2-n;
}
printf("%I64d\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  思维