題目背景
討論完令人頭疼的科研與審稿,茶話會的話題逐漸轉向了日常的社交。小 T 興致勃勃地分享了他的一個有趣發現:在某一常用的社交平台上,用戶彼此間的關注關係恰好都是嚴格的單向關注,即不存在兩名用戶互相關注的情況。
這個奇妙的現象立刻引起了大家的討論。小 S 順勢提取了該網路的部分統計數據,收集到了每位用戶的關注數與粉絲數。遺憾的是,她在傳閱數據的過程中不小心弄丟了一部分,最後只留下了一個由若干正整數構成的集合。小 S 發現,對於集合中的每一個元素,總能找到至少一個用戶,其關注數或粉絲數恰好等於該元素。
由於平台完整的關注結構對外保密,具體的社交關係網已無從知曉。為了驗證這些殘存數據的合理性,大家紛紛拿起了紙筆,嘗試著還原出符合條件的網路。為了增添幾分趣味與競技性,大家甚至就此展開了一場小小的比賽,看誰能構造出總關注數最少的社交網路。
在這一社交平台上,共有 $n$ 位用戶。小 S 收集到了一個大小為 $m$ 的數字集合 $\{c_1, \dots, c_m\}$。根據這些資訊,一個可能的關注網路可以抽象為一張滿足以下條件的有向圖 $G = (V, E)$:
- 包含 $n$ 位用戶,即頂點集合 $V = \{1, 2, \dots, n\}$;
- 不存在自己關注自己或重複關注的情況,即圖 $G$ 不含自環與重邊;
- 所有關注關係均為嚴格的單向關注,即對於任意有向邊 $(u, v) \in E$,均滿足 $(v, u) \notin E$;
- 對於集合中的每一個元素 $c_i$ ($1 \le i \le m$),圖 $G$ 中都至少存在一個頂點,其出度(對應關注數)或入度(對應粉絲數)恰好等於 $c_i$。
你需要根據小 S 收集到的資訊,還原出一個總關注數最少(即圖 $G$ 邊數最小)的關注網路。
輸入格式
輸入的第一行包含一個非負整數 $o \in \{0, 1\}$,表示輸出的參數。 輸入的第二行包含兩個正整數 $n, m$ ($1 \le m < n \le 10^6$),表示用戶數量與小 S 收集到的集合的大小。保證若 $o = 0$,則 $n \le 2 \times 10^3$。 輸入的第三行包含 $m$ 個兩兩不同的正整數 $c_1, c_2, \dots, c_m$ ($1 \le c_i \le n - 1$),表示小 S 收集到的集合中的元素。
輸出格式
輸出一行一個正整數 $k$,表示所有可能的關注網路中總關注數的最小值。 若 $o = 0$,則接下來輸出 $k$ 行,每行包含兩個正整數 $u, v$ ($1 \le u, v \le n$),表示用戶 $u$ 關注了用戶 $v$,即 $(u, v) \in E$。
範例
輸入格式 1
0 5 4 3 1 4 2
輸出格式 1
7 3 2 4 1 3 4 4 5 3 5 4 2 3 1