Жұптарға бөлу


Шешімді жөнелту

Ұпайлар: 1
Уақыт шектеуі: 1.0s
Жад шектеуі: 256M

Author:
Problem type
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Go, Java, Pascal, Perl, PHP, Python, Sed, Text

\(1, 2, 3, \dots, 2n\) сандары берілген. \(i\)-жұптағы сандардың қосындысы \(i\)-ға қалдықсыз бөлінетіндей оларды \(n\) \((a_i, b_i)\) жұптарына бөлу керек.

Басқаша айтқанда: бірінші жұп үшін қосынды \(1\)-ге, екінші жұп үшін — \(2\)-ге, үшінші үшін — \(3\)-ке, және т.б., \(n\)-ші жұпқа дейін, оның қосындысы \(n\)-ге бөлінуі тиіс.

Енгізу

Бірінші жолда бір бүтін сан \(T\) \((1 \leq T \leq 10^5)\) — тестілер саны.

Келесі \(T\) жолда, әр жолда бір бүтін сан \(n\) \((1 \leq n \leq 10^5)\).

Барлық тесттердегі \(n\) сандарының қосындысы \(10^6\)-дан аспайтынына кепілдік беріледі.

Шығару

Әр тест үшін:

  • Егер мұндай бөлу мүмкін болмаса, NO жолын шығарыңыз.

  • Егер бөлу мүмкін болса, алдымен YES жолын шығарыңыз, содан кейін \(n\) жолда \(a_i\) және \(b_i\) жұптарымен сандарды (әр сан \(1\)-ден \(2n\)-ға дейін, барлығы әртүрлі) шығарыңыз.

Мысалдар

Енгізу 1
3
2
6
1
Жауап 1
YES
1 3
2 4
YES
11 12
2 4
3 6
5 7
9 1
8 10
YES
1 2

Пікірлер

Қазіргі уақытта ешқандай пікір жоқ.