You are given an integer sequence 1,2,…,n1,2,…,n. You have to divide it into two sets AAand BB in such a way that each element belongs to exactly one set and |sum(A)−sum(B)||sum(A)−sum(B)| is minimum possible.

The value |x||x| is the absolute value of xx and sum(S)sum(S) is the sum of elements of the set SS.

Input

The first line of the input contains one integer nn (1≤n≤2⋅1091≤n≤2⋅109).

Output

Print one integer — the minimum possible value of |sum(A)−sum(B)||sum(A)−sum(B)| if you divide the initial sequence 1,2,…,n1,2,…,n into two sets AA and BB.

Examples

Input
3
Output
0
Input
5
Output
1
Input
6
Output
1

Note

Some (not all) possible answers to examples:

In the first example you can divide the initial sequence into sets A={1,2}A={1,2} and B={3}B={3} so the answer is 00.

In the second example you can divide the initial sequence into sets A={1,3,4}A={1,3,4} and B={2,5}B={2,5} so the answer is 11.

In the third example you can divide the initial sequence into sets A={1,4,5}A={1,4,5} and B={2,3,6}B={2,3,6} so the answer is 11.

题意:给你一个整数N,让你将1~N这N个整数分成两个集合,

问这两个集合的元素数值和的差最小能是多少。

思路:

先写几个样例来看下。

当N=3,

1,2,3  可以把1和2分到一个集合,3分到另一个集合。这样差为0

当N=4

1,2,3,4可以把 1和4分到一个集合,2和3在另一个集合,这样差为0

当N=5

1,2,3,4,5,可以分成这样{1,3,4},{2,5} 差为1

我们在算下这三个样例的所有元素和

N=3 ,sum=6

N=4,sum=10

N=5,sum=15

规律就可以看出来了,当1~N的和为偶数的时候,一定可以分成两个相同的sum的集合

为奇数可以分成相差为1的两个集合。

那么就根据规律来写程序了。

我的AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#define rep(i,x,n) for(int i=x;i<n;i++)
#define repd(i,x,n) for(int i=x;i<=n;i++)
#define pii pair<int,int>
#define pll pair<long long ,long long>
#define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define MS0(X) memset((X), 0, sizeof((X)))
#define MSC0(X) memset((X), '\0', sizeof((X)))
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define gg(x) getInt(&x)
using namespace std;
typedef long long ll;
inline void getInt(int* p);
const int maxn=;
const int inf=0x3f3f3f3f;
/*** TEMPLATE CODE * * STARTS HERE ***/
ll n;
int main()
{
cin>>n;
ll ans=(n*(+n))/2ll;
if(ans&)
{
cout<<<<endl;
}else
{
cout<<<<endl;
}
return ;
} inline void getInt(int* p) {
char ch;
do {
ch = getchar();
} while (ch == ' ' || ch == '\n');
if (ch == '-') {
*p = -(getchar() - '');
while ((ch = getchar()) >= '' && ch <= '') {
*p = *p * - ch + '';
}
}
else {
*p = ch - '';
while ((ch = getchar()) >= '' && ch <= '') {
*p = *p * + ch - '';
}
}
}

MY BLOG:
https://www.cnblogs.com/qieqiemin/

Integer Sequence Dividing CodeForces - 1102A (规律)的更多相关文章

  1. CodeForces - 1102A

    You are given an integer sequence 1,2,-,n1,2,-,n. You have to divide it into two sets AA and BB in s ...

  2. CodeForces - 1102A(思维题)

    https://vjudge.net/problem/2135388/origin Describe You are given an integer sequence 1,2,-,n. You ha ...

  3. Codeforces Round #452 (Div. 2)-899A.Splitting in Teams 899B.Months and Years 899C.Dividing the numbers(规律题)

    A. Splitting in Teams time limit per test 1 second memory limit per test 256 megabytes input standar ...

  4. 递推:Number Sequence(mod找规律)

    解题心得: 1.对于数据很大,很可怕,不可能用常规手段算出最后的值在进行mod的时候,可以思考找规律. 2.找规律时不必用手算(我傻,用手算了好久).直接先找前100项进行mod打一个表出来,直接看就 ...

  5. CodeForces - 810C(规律)

    C. Do you want a date? time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  6. Codeforces Round #531 (Div. 3) ABCDEF题解

    Codeforces Round #531 (Div. 3) 题目总链接:https://codeforces.com/contest/1102 A. Integer Sequence Dividin ...

  7. Codeforces Round #604 (Div. 2) D. Beautiful Sequence(构造)

    链接: https://codeforces.com/contest/1265/problem/D 题意: An integer sequence is called beautiful if the ...

  8. CodeForces - 1059C Sequence Transformation (GCD相关)

    Let's call the following process a transformation of a sequence of length nn. If the sequence is emp ...

  9. Sequence in the Pocket【思维+规律】

    Sequence in the Pocket 题目链接(点击) DreamGrid has just found an integer sequence  in his right pocket. A ...

随机推荐

  1. i.s.h.med Enhancement for cancelling an appointment

    This article intends to introduce my experience about enhancement for canceling an appointment. I tr ...

  2. [php] yii debug设置

    最近在使用yii写rest api发现在所有错误信息都写在log文件里调试不是很直接 在index.php头部查入就ok了 defined('YII_ENABLE_EXCEPTION_HANDLER' ...

  3. ArcGIS栅格影像怎么从WGS84地理坐标转成Xian80投影坐标

    事情是这样的,我下载了一个WGS84坐标系的影像图,需要加载到Xian80投影坐标系下,所以需要对影像图进行坐标系的转换 1.因为涉及到两个参考椭球的问题,首先需要计算七参数,如何计算七参数,请参考我 ...

  4. XML Namespace (xmlns) 属性

    http://www.w3school.com.cn/xml/xml_namespaces.asp XML Namespace (xmlns) 属性 XML 命名空间属性被放置于元素的开始标签之中,并 ...

  5. Excel中row函数的使用方法

    1.row函数的含义 1 row函数的含义 返回所选择的某一个单元格的行数. END 2.row函数的语法格式 1 row函数的语法格式 =row(reference) 如果省略reference,则 ...

  6. 深入浅出的webpack4构建工具---webpack+vue+router 按需加载页面(十五)

    1. 为什么需要按需加载? 对于vue单页应用来讲,我们常见的做法把页面上所有的代码都打包到一个bundle.js文件内,但是随着项目越来越大,文件越来越多的情况下,那么bundle.js文件也会越来 ...

  7. Zabbix 3.4.2 install && Configuration

    原理: 1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置.统计数据及操作数据都由它组织进行: 2)database storage:专用于存储所有配置信息,以及由z ...

  8. luogu P4403 [BJWC2008]秦腾与教学评估

    题目 一道神奇的题qwq 首先看题很容易想到把所有的点存下来然后暴力枚举...于是RE 20分 所以要找一种不用开那么大的数组的解法(然而我自己是不可能想出来的qwq 注意一个地方,人数为奇数的位置“ ...

  9. <转>jmeter(十七)目录结构

    之前了解过jmeter的目录结构,但只知道一些常用的配置文件,看到一篇介绍的比较详细的博客,就转载过来,当然,其实是自己懒得再去搜集更多资料慢慢看了,时间不够用... 原文链接:http://www. ...

  10. sql函数创建

    语法: CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype AS $variable_name ...