CF1102A.Integer Sequence Dividing

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Integer Sequence Dividing

题目描述

给定一个整数序列 1,2,…,n1, 2, \dots, n。你需要将其划分为两个集合 AA 和 BB,使得每个元素恰好属于一个集合,并且 ∣sum(A)−sum(B)∣|sum(A) - sum(B)| 的值尽可能小。

其中 ∣x∣|x| 表示 xx 的绝对值,sum(S)sum(S) 表示集合 SS 中所有元素的和。

输入格式

输入的第一行包含一个整数 nn(1≤n≤2⋅1091 \le n \le 2 \cdot 10^9)。

输出格式

输出一个整数——将初始序列 1,2,…,n1, 2, \dots, n 划分为两个集合 AA 和 BB 后,∣sum(A)−sum(B)∣|sum(A) - sum(B)| 的最小可能值。

说明/提示

以下是部分样例的可能答案:

在第一个样例中,你可以将初始序列划分为 A={1,2}A = \{1, 2\} 和 B={3}B = \{3\},此时答案为 00。

在第二个样例中,你可以将初始序列划分为 A={1,3,4}A = \{1, 3, 4\} 和 B={2,5}B = \{2, 5\},此时答案为 11。

在第三个样例中,你可以将初始序列划分为 A={1,4,5}A = \{1, 4, 5\} 和 B={2,3,6}B = \{2, 3, 6\},此时答案为 11。

由 ChatGPT 4.1 翻译

样例

3
0
5
1
6
1

在线编程 IDE

建议全屏模式获得最佳体验