CSES 1697 - Chess Tournament
1.0s 512M將舉辦一場有 \(n\) 位棋手參加的西洋棋比賽。每位棋手宣告自己想要下的比賽場數。任意一對棋手之間至多進行一場比賽。
你的任務是決定哪些比賽應該舉辦,使得每位棋手宣告的場數都恰好被滿足。
輸入格式
第一行包含一個整數 \(n\):棋手的數量。棋手編號為 \(1, 2, \ldots, n\)。
第二行包含 \(n\) 個整數 \(x_1, x_2, \ldots, x_n\):每位棋手想要下的比賽場數。
輸出格式
第一行輸出一個整數 \(k\):比賽的場數。
接下來 \(k\) 行,每行包含兩個整數,表示一場比賽的兩位棋手。
若不存在合法的安排,輸出 IMPOSSIBLE。
範例輸入 1
5
1 3 2 0 2
範例輸出 1
4
1 2
2 3
2 5
3 5
限制
- \(1 \le n \le 10^5\)
- \(\sum x_i \le 2 \cdot 10^5\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入