2024 年 12 月 5 號,小七和小八上了一整天的課,好不容易撐到了放學。傍晚,他們一起去吃晚餐。
小七嘆了口氣,因為上課上了好幾天,已經三天沒有練習程式競賽,他覺得自己面目可憎。他說:「明天就要出發去參加全國賽了,好緊張。」
「真羨慕你,可以去參加全國賽。」小八在區賽失手,與全國賽的參賽名額失之交臂。
「那你要不要參加 IOICamp?報名三天後就截止了。」小七直接鬼轉話題。
「你去的話我一定去。」
「我當然會去啊。」小七說。
這個時候,剛好也在這間餐廳吃飯的小魚跑過來說:「欸欸小八,你要去 IOIC?你去的話我一定去。」
接下來,他們幾人熱烈地討論有誰會去 IOIC。
聞言,老闆也跑來:「你們要去參加 IOIC?我兒子說如果小八去了,那他一定會去,喔不過他不喜歡隔壁班的小波,要是小波去了,我兒子一定不會去。」
小七看見這麼多人在他的大力推薦之下,對參加 IOIC 有興趣,他感到很開心,但他也想到了一個問題:如果小八跟小波都去了 IOIC,那老闆的兒子到底是會還是不會去 IOIC 呢?要是要讓每個人說出的條件都被滿足,那麼唯一一種可能發生的狀況就是小七、小八、小魚、老闆兒子都去了 IOIC,而小波沒有去。
小七對這個問題很感興趣,剛好最近有很多人在討論要不要參加 IOIC,於是他收集了一些情報,有 $N$ 個他想知道會不會去 IOIC 的人,以 $1,2,\dots,N$ 編號,他得知了 $M$ 條消息,消息有 2 種:
小七想知道,如果每個人的選擇都只有去跟不去這兩種可能,那存不存在一種狀況滿足所有情報給出的條件,如果有的話,他還想知道一種滿足所有條件的情況。
注意條件反過來不一定要成立,例如「小波去了的話老闆兒子就不會去」這個條件只要求要是小波選擇去 IOIC,老闆兒子就不會去,而不要求老闆兒子不去,小波就會去。
第一行有一個整數 $T$,代表測試資料的數量。
每筆測試資料的第一行有兩個整數 $N,M$,分別代表小七想知道會不會去 IOIC 的人數,以及小七知道的消息數量。
接下來有 $M$ 行,每一行代表一條消息。一條消息的格式是 $1\ i\ x$ 或 $2\ i\ j\ x\ y$,意義如題目敘述所述。
對於每筆測試資料,第一行輸出 YES 或 NO,代表是否存在一種狀況滿足所有消息中描述的條件。
如果第一行輸出的結果是 YES,第二行輸出 $N$ 個整數 $z_1,z_2,\dots,z_N$,表示一種滿足所有條件的狀況,其中 $z_i=1$ 代表第 $i$ 個人選擇去 IOIC、$z_i=0$ 則代表他選擇不去。若有多種解,輸出任意一個即可。
如果你第一行的輸出正確,但是在答案為 YES 時構造的狀況不滿足所有條件,那麼你可以得到 $30\%$ 的分數。注意答案為 NO 時請不要輸出第二行,且答案為 YES 時還是要按照格式要求輸出第二行。
3 5 5 2 1 2 1 1 1 1 1 2 2 3 1 1 2 2 4 1 1 2 5 4 1 0 2 2 2 1 2 1 0 2 2 1 0 0 2 3 2 1 2 1 0 2 2 1 0 0 1 1 1
YES 1 1 1 1 0 YES 0 0 NO
| No. | Testdata Range | Constraints | Score | 
|---|---|---|---|
| 1 | 0 | 範例測資 | 0 | 
| 2 | 0~19 | 無額外限制 | 100 |