题面
题面语言
给定非负整数 。
定义长度为 的数列 如下。
你可以任意次执行以下操作:选择两个不同的下标 ,将 和 都替换为 。
求使数列所有元素相等所需的最少操作次数,并输出一种达到该最少次数的操作方案。若不可能,则输出 。
若可以做到,则在给定限制条件下,可以证明最少操作次数始终不超过 。
本题设有部分分。详细规则请参见 Scoring 部分。
输入
输入按照以下格式从标准输入给出。
输出
若无法做到,在一行中输出 。
若可以做到,第一行输出最少操作次数 。接下来输出 行,第 行输出第 次操作选择的两个下标 ,格式如下。
限制
- 。
- 。
子任务
Scoring
每个测试点的得分按其所属子任务分值的百分比,依照以下规则计算。
若无法使所有元素相等:
- 输出 时,得分为 。
- 否则,得分为 。
若可以使所有元素相等:
- 输出 时,得分为 。
- 输出非负整数并正确判断为可行,但该整数不是最少操作次数时,得分为 。
样例
样例 1
样例输入
3 0 1
样例输出
3
1 4
1 2
3 4
样例 2
样例输入
2 1 0
样例输出
-1
样例 3
样例输入
0 5 0
样例输出
0