题目背景
题目:数对构造。
题目描述
将 1∼2n 的整数分为 n 个有序数对 (ai,bi)(1≤i≤n)。你需要使得对于任意不大于 n 的正整数 i,有 ai−bi=i。
给定 n,请你给出一种构造方案。若无解则输出 -1 0
。
输入格式
一行一个正整数 n。
输出格式
若无解,输出一行两个整数 -1 0
。否则输出 n 行,每行两个 1∼2n 内的正整数,表示 (ai,bi)。
你需要保证 n 对 (ai,bi) 按 ai−bi 的大小顺次构成一个 1∼2n 整数的排列。
2
-1 0
5
2 1
9 7
6 3
8 4
10 5
提示
样例解释
对于第一组样例,显然这个样例无解。
对于第二组样例,样例输出给出了一种可行的构造方案。
数据范围及约定
本题使用捆绑测试。
Subtask 1 (20 pts):n≤5。
Subtask 2 (20 pts):n≤105。
Subtask 3 (30 pts):n 为素数。
Subtask 4 (30 pts):无特殊限制。
对于 100% 的数据,1≤n≤106。
这道题用来锻炼数学思维和构造能力,但不适合在 OI 比赛中。
CoOI Round 1 B 题。