CSES 1164 - Room Allocation
1.0s 512M有一間很大的飯店,即將有 \(n\) 位客人抵達。每位客人都想要住單人房。
你知道每位客人的到達日與離開日。如果第一位客人的離開日早於第二位客人的到達日,這兩位客人就可以住同一間房。
請問最少需要幾間房才能安置所有客人?又該如何分配房間?
輸入格式
第一行有一個整數 \(n\):客人的數量。
接下來有 \(n\) 行,每行描述一位客人。每行有兩個整數 \(a\) 與 \(b\):到達日與離開日。
輸出格式
先輸出一個整數 \(k\):所需房間數的最小值。
接著輸出一行,依照輸入順序列出每位客人被分配到的房間編號。房間編號為 \(1,2,\ldots,k\)。任何合法的分配方式都可以。
範例輸入 1
3
1 2
2 4
4 4
範例輸出 1
2
1 2 1
限制
- \(1 \le n \le 2 \cdot 10^5\)
- \(1 \le a \le b \le 10^9\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入