Codeforces Round #277 (Div. 2)---A. Calculating Function (规律)

2015-01-27 06:20:21 · 作者: · 浏览: 5

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






解题思路:大水题一枚,直接找规律。n%2==0时,f = n/2; 否则,f = -(n+1)/2.





AC代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
          #include 
          
            #include 
           
             #include 
            
              #include 
             
               using namespace std; #define INF 0x7fffffff int main() { // #ifdef sxk // freopen("in.txt","r",stdin); // #endif long long n; while(scanf("%lld",&n)!=EOF) { if(n & 1) printf("%lld\n", -(n+1)/2); else printf("%lld\n", n/2); } return 0; }