首页 > 代码库 > POJ1844 Sum

POJ1844 Sum

Sum
Time Limit: 1000MS Memory Limit: 30000K
Total Submissions: 10160 Accepted: 6674

Description

Consider the natural numbers from 1 to N. By associating to each number a sign (+ or -) and calculating the value of this expression we obtain a sum S. The problem is to determine for a given sum S the minimum number N for which we can obtain S by associating signs for all numbers between 1 to N. 

For a given S, find out the minimum value N in order to obtain S according to the conditions of the problem. 

Input

The only line contains in the first line a positive integer S (0< S <= 100000) which represents the sum to be obtained.

Output

The output will contain the minimum number N for which the sum S can be obtained.

Sample Input

12

Sample Output

7

Hint

The sum 12 can be obtained from at least 7 terms in the following way: 12 = -1+2+3+4+5+6-7.

#include <stdio.h>

int main()
{
    int s, sum, i;
    while(scanf("%d", &s) == 1){
        sum = i = 0;
        while(sum < s || (sum - s) & 1)
            sum += ++i;
        printf("%d\n", i);
    }
    return 0;
}




POJ1844 Sum