Tim the Busy Beaver 報名了手槍課程以滿足體育要求,並希望成為一名神槍手。MIT 射擊場有 $N$ ($1 \le N \le 3 \cdot 10^5$) 個編號從 1 到 $N$ 的靶道。第 $i$ 個靶道目前有 $A_i$ ($0 \le A_i \le 5 \cdot 10^5$) 個目標排成一列。保證整個射擊場中至少有一個目標。
Tim 的練習槍有無限的子彈,他需要擊落所有的目標。在每次射擊前,Tim 會選擇一個靶道並向該靶道發射 1 發子彈。一旦目標被擊中,它就會倒下且不會再升起。
然而,Tim 的槍法很差,因此每一次奇數編號的射擊都會擊中該靶道的第一個目標,而每一次偶數編號的射擊都會錯過該靶道的第一個目標,並擊中第二個目標(如果存在的話)。第一次射擊為第 1 發。
Tim 不允許進行不會擊中任何目標的射擊,因為這會損壞目標後方的牆壁。請幫助 Tim 找到一個能擊落所有目標的射擊序列,或者說明不存在這樣的序列。
輸入格式
每個測試包含多個測試案例。第一行包含一個整數 $t$ ($1 \le t \le 1000$):測試案例的數量。接著是各個測試案例的描述。
每個測試案例包含 2 行。第一行包含 $N$,即靶道的數量。第二行包含 $N$ 個以空格分隔的整數 $A_1, A_2, \dots, A_n$,表示每個靶道中的目標數量。
保證所有測試案例中 $A_i$ 的總和不超過 $5 \cdot 10^5$。 保證所有測試案例中 $N$ 的總和不超過 $3 \cdot 10^5$。
輸出格式
對於每個測試案例,如果存在一個能擊中所有目標的射擊序列,請輸出 "YES",否則輸出 "NO"。答案不區分大小寫(例如 "yEs"、"yes"、"Yes" 和 "YES" 都會被視為肯定回答)。
令 $A$ 為該測試案例中 $A_i$ 的總和(注意 $A$ 對於不同的測試案例可能不同)。如果存在這樣的序列,請在下一行輸出一個包含 $A$ 個以空格分隔的整數 $l_1, l_2, \dots, l_A$ 的序列,其中 $l_i$ 是 Tim 在第 $i$ 次射擊時應瞄準的靶道。如果有多種解,輸出其中任意一種即可。
子任務
如果你輸出的 YES/NO 回答正確,但提供的 $l_i$ 值不正確,你將獲得每個子任務 50% 的分數。對於每個測試案例,你必須輸出恰好 $A$ 個 $l_i$ 值才能獲得部分分數。
- (30 分):所有測試案例中 $N$ 的總和不超過 2000,且所有測試案例中 $A_i$ 的總和不超過 2000。
- (70 分):無額外限制。
範例
輸入格式 1
3 1 3 1 2 5 1 1 1 1 1
輸出格式 1
YES 1 1 1 NO NO
說明
在第一個測試案例中,只有 1 個靶道且有 3 個目標,Tim 可以透過向靶道 1 發射 3 發子彈來擊落所有目標。如果目標從前到後分別為 $A, B, C$,第一發子彈會擊落 $A$,第二發子彈會錯過 $B$ 並擊落 $C$,最後一發子彈會擊落 $B$。
在第二個測試案例中,只有 1 個靶道且有 2 個目標。向靶道 1 發射的第一發子彈會擊中前方的目標,但第二發子彈無法擊落剩餘的目標,因為它會射偏。因此,該測試案例不存在符合條件的射擊序列。
在第三個測試案例中,有 5 個靶道,每個靶道各有 1 個目標。向任何靶道發射的第一發子彈都會擊中該靶道的目標,但第二發子彈將無法擊中任何其他目標。因此,該測試案例不存在符合條件的射擊序列。