一台機器上,有 $n$ 個無依賴關係的任務等待被調度。在 $t$ 時刻啟動執行的任務,會在 $t+1$ 時刻完成。所有任務只能在整數時刻啟動;一個任務完成時,可以立即啟動另一個任務。在一個任務執行的過程中,無法執行別的任務。
任務具有時效性。可以被表示為:第 $i$ 個任務的啟動時刻,必須在 $l_i$ 時刻到 $r_i$ 時刻(包含兩邊)之間。
此外,還有 $m$ 條約束。第 $j$ 個約束表示,在 $p_j$ 時刻到 $q_j$ 時刻(包含兩邊)之間,最多只能啟動一個任務。
請確定每個任務的啟動時刻,滿足上述要求。
輸入格式
本題包含多組測試資料。
輸入的第一行包含非負整數 $T$,表示測試資料組數。
接下來依次輸入每組測試資料,對於每組測試資料:
第一行包含兩個整數 $n$ 和 $m$。
接下來 $n$ 行,每行兩個整數 $l_i$ 和 $r_i$,表示第 $i$ 個任務的可用時間區間。
接下來 $m$ 行,每行兩個整數 $p_j$ 和 $q_j$,表示第 $j$ 個調度約束區間。
輸出格式
對於每組資料,輸出一行 $n$ 個整數,依次表示每個任務的啟動時刻。特別地,若不存在可行方案,則輸出 Impossible。若存在多組可行方案,輸出任意一組即可。
範例一
輸入
4 2 3 2 7 1 10 7 8 2 10 1 6 2 2 2 5 1 9 1 5 4 9 2 4 3 8 3 6 2 7 4 7 8 9 1 6 4 1 6 7 6 7 6 7 1 11 21 31
輸出
7 1 3 9 8 6 Impossible
說明
本範例滿足子任務 $1$ 的限制。
- 對於第一組資料,兩個任務分別在時刻 $7,1$ 啟動。均在各自的 $[l,r]$ 範圍內,且滿足所有約束。
- 對於第四組資料,前三個任務都只能在時刻 $6$ 或 $7$ 啟動。故不存在可行的方案。
範例二
見下發檔案中的 ex_data2.in 和 ex_data2.ans。
本範例滿足子任務 $2$ 的限制。
範例三
見下發檔案中的 ex_data3.in 和 ex_data3.ans。
本範例滿足子任務 $3$ 的限制。
範例四
見下發檔案中的 ex_data4.in 和 ex_data4.ans。
本範例滿足子任務 $4$ 的限制。
範例五
見下發檔案中的 ex_data5.in 和 ex_data5.ans。
本範例滿足子任務 $5$ 的限制。
範例六
見下發檔案中的 ex_data6.in 和 ex_data6.ans。
本範例滿足子任務 $6$ 的限制。
範例七
見下發檔案中的 ex_data7.in 和 ex_data7.ans。
本範例滿足子任務 $7$ 的限制。
範例八
見下發檔案中的 ex_data8.in 和 ex_data8.ans。
本範例滿足子任務 $8$ 的限制。
資料範圍
設 $N,M$ 分別為單個測試點內所有測試資料的 $n,m$ 的和。對於所有測試資料,均有:
- $1 \le n \le 2.5 \times 10^5,0 \le m \le 2.5 \times 10^5$;
- $1 \le l_i \le r_i \le 10^{9}$;
- $1 \le p_j \le q_j \le 10^{9}$。
| 子任務編號 | $N\le$ | $M\le$ | 特殊性質 | 分值 |
|---|---|---|---|---|
| $1$ | $10$ | $10$ | 無 | $5$ |
| $2$ | $2.5\times 10^5$ | $2.5\times 10^5$ | $\rm A$ | $5$ |
| $3$ | $10^3$ | $10^3$ | $\rm B$ | $15$ |
| $4$ | $2.5\times 10^5$ | $2.5\times 10^5$ | $\rm C$ | $15$ |
| $5$ | $10^4$ | $10^4$ | $\rm B$ | $15$ |
| $6$ | $10^5$ | $10^5$ | $\rm B$ | $15$ |
| $7$ | $10^5$ | $10^5$ | 無 | $15$ |
| $8$ | $2.5\times 10^5$ | $2.5\times 10^5$ | 無 | $15$ |
$\rm A$:保證 $n\le100$,且對於所有 $1\le i< n$,均有 $l_i\le l_{i+1}$,$r_i\le r_{i+1}$。
$\rm B$:對於所有 $1\le i\le n$,均有 $r_i\le 5\max(n,m)$。
$\rm C$:對於所有 $1\le i\le m$,均有 $p_i=i,q_i=i+1$,且對於所有 $1\le i\le n$,均有 $r_i\le m$。