#CSES1164. 房间分配

房间分配

题目背景

翻译自 CSES-1164 题。

题目描述

有一家大酒店,即将迎来 nn 位顾客。每个顾客都希望拥有一个单独的房间。

已知每个顾客的到达和离开日期。如果第一个顾客的离开日期早于第二个顾客的到达日期,那么这两个顾客可以住在同一个房间。

请问,为了容纳所有顾客,最少需要多少个房间?并且如何为这些顾客分配房间?

输入格式

第一行输入一个整数 nn,代表顾客的数量。

接下来的 nn 行,每行描述一个顾客,包含两个整数 aabb,分别代表顾客的到达日期和离开日期。

输出格式

首先输出一个整数 kk,表示所需的最少房间数。

然后输出一行,其中包含每位客户的房间号,顺序与输入相同。房间编号为 1,2,,k1,2,\dots,k 。你可以输出任何有效的解决方案。

样例

3
1 2
2 4
4 4
2
1 2 1

说明/提示

1n21051 \le n \le 2\cdot 10^5

1ab1091 \leq a \leq b \leq 10^9