#P1370. 打牌

打牌

题目描述

Resona 和 Asahi 在打牌。

两人首先约定了两个正整数 n,kn,k,满足 nn 是偶数且 2kn2k \leq n。接着两人各拿到 kk 张牌,Asahi 手上的第 ii1ik1 \leq i \leq k)张牌上写有正整数 n+(2i1)n + (2i − 1),Resona 手上的第 ii1ik1 \leq i \leq k)张牌上写有正整数 n(2i1)n − (2i − 1)。可以注意到双方的牌恰好构成 2k2k 个连续的奇数。

接下来游戏将进行 kk 轮,每轮中双方从自己剩下的手牌中各打出一张牌,打出的牌不能收回。如果两张牌上的数字互质,那么 Resona 得一分,否则 Asahi 得一分。所有轮次结束后,双方统计各自得分的总和,作为整场游戏的得分。

Resona 已经知道,第 ii 轮中,Asahi 将打出自己手上的第 ii 张牌。现在他想知道:

  • 他最高的可能得分;
  • 一种让他拿到可能最高分的打牌方案。

请写一个程序帮帮她吧!

输入格式

一行两个正整数 n,kn, k

输出格式

第一行输出一个整数 ss,表示 Resona 可能的最高得分。

接下来 kk 行每行输出一个整数,第 ii 行的整数 pip_i 表示 Resona 应该在第 ii 轮中打出的牌的编号。

10 3
3
3
1
2

样例 2

见选手目录下的 card/card2.incard/card2.ans

评分方式

本题采用 Special Judge。

选手的输出应当保证:

  • 输出的第一行是一个 [0,k][0, k] 的整数;
  • 接下来的 kk 行每行是一个 [0,k][0, k] 的整数;
  • 输出不含其他内容。

违反上述规范可能导致不能得到任何分数。

在输出符合规范的前提下,按如下方式计分:

  • 如果 ss 和输出的方案都正确,获得该测试点满分;
  • 如果 ss 正确但输出的方案不正确,获得该测试点满分的 15%15\%
  • 否则将不会获得任何分数。

子任务

本题采用捆绑测试。

对于全部数据,1k1061 \leq k \leq 10^62kn101002k \leq n \leq 10^{100},保证 nn 是偶数。

对于每个子任务,你的得分是其中每个测试点得分的最小值。

子任务 kk\leq nn 分值
11 1010 109\leq 10^9 55
22 2020
33 200200 1515
44 2×1032\times 10^3 1010
55 10610^6 =2k=2k 2525
66 10510^5 109\leq 10^9 1010
77 10610^6 1515
88 10100\leq 10^{100}