训练参赛(二)
题号:NC288191
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}本题与《训练参赛》共享题目背景,但是所求内容与范围均不同,我们建议您重新阅读题面。
\hspace{15pt}集训队有 2 \times n 名队员备战鹿瓜杯比赛。已知第 i 名队员的实力为 \color{orange}{\pmb i} ,现在需要准备 n 场训练赛,将实力相近的队员匹配到一起进行训练。
\hspace{15pt}每场训练赛为两人进行对局,每个队员都需要参加且仅参加一场训练赛。每一场训练赛的不和谐度为参赛双方的实力之差的绝对值。请你判断,在所有训练赛的组合方式中,是否存在不和谐度之和恰好为 k 的情况。如果有,输出任意一种组合方式。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10^5\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}在一行上输入两个正整数 n,k \left(1\leqq n \leqq 10^6;\ 1\leqq k \leqq 10^{12}\right) 代表需要准备的训练赛的场次数量,以及最终不和谐度的总和。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 10^6

输出描述:

\hspace{15pt}对于每一组测试数据,如果不存在不和谐度之和恰好为 k 的组合方式,直接输出 -1;否则,输出 n 行,每行输出两个不同的正整数 i, j \left(1\leqq i, j \leqq 2 \times n\right),代表一场训练赛的参赛双方。
示例1

输入

复制
3
3 3
3 4
2 4

输出

复制
1 2
4 3
5 6
-1
1 4
3 2