#ABC165E. 轮转匹配

轮转匹配

轮转匹配

题目描述

你要主办一个名为「AtCoder 猜拳」的一对一游戏大会。 大会共有 NN 名参赛者,每人被分配了 11NN 中互不相同的编号。 竞技场中准备了 MM 个可容纳两人的对战台,你必须给每个对战台分配两个 11 以上 NN 以下互不相同的整数。 不能给多个对战台分配相同的整数。 大会由 NN 轮构成,每轮按如下方式进行:

  • 每名参赛者如果存在分配了自己编号的对战台,就去那里,与来到该对战台的另一方对战。

  • 之后,每名参赛者将自己的编号加 11。如果加 11 后的编号为 N+1N+1,则将该值改为 11

你希望在整个 NN 轮中,不存在与同一名参赛者对战两次以上的参赛者。 请输出一个满足上述条件的对战台整数分配方案。 可以证明,在给定约束下这样的分配方案必然存在。

输入格式

输入按以下格式从标准输入给出:

NN MM

输出格式

按以下格式输出 MM 行。 第 ii 行输出分配给第 ii 个对战台的两个整数。

a1a_1 b1b_1
a2a_2 b2b_2
::
aMa_M bMb_M

样例

4 1
2 3

44 名参赛者记为 A,B,C,DA,B,C,D,假设最初 AA 分配 11、B 分配 22、C 分配 33、D 分配 44

  • 11 轮中,分配了 22 的 B 与分配了 33 的 C 对战,之后 A 的编号变为 22、B 的编号变为 33、C 的编号变为 44、D 的编号变为 11

  • 22 轮中,分配了 22 的 A 与分配了 33 的 B 对战,之后 A 的编号变为 33、B 的编号变为 44、C 的编号变为 11、D 的编号变为 22

  • 33 轮中,分配了 22 的 D 与分配了 33 的 A 对战,之后 A 的编号变为 44、B 的编号变为 11、C 的编号变为 22、D 的编号变为 33

  • 44 轮中,分配了 22 的 C 与分配了 33 的 D 对战,之后 A 的编号变为 11、B 的编号变为 22、C 的编号变为 33、D 的编号变为 44

由于在整个 44 轮中不存在与同一名参赛者对战两次以上的参赛者,所以这个输出是正确的。

7 3
1 6
2 5
3 4

数据范围

  • 1M1 \leq M
  • M×2+1N200000M \times 2 +1 \leq N \leq 200000

提示

答案不唯一,输出任意合法解即可。

难度 提高
通过率
尝试 0
已通过 0
ID
1936
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签