TouchStone
  Please Login
ログイン 登録
 ホームページ  問題セット  試験一覧  提出状況  掲示板  統計情報
  • ホーム
  • 問題セット
  • P1346
  • 問題
  • P1346分组排序
    制限 : 時間制限 : 20000 MS   メモリ制限 : 65536 KB
    問題説明

    HarryPotter大学毕业后来到了国防部工作。但不幸的是当他工作的第一天,外星人大举入侵地球。HarryPotter被临时调到情报分析部门执行任务。他得到的第一个任务就是对外星人部队的作战能力按从大到小排序。HarryPotter将得到两份情报,一份是外星人每支部队的攻击力,另一份是这些部队的防御力。

    当HarryPotter把这些部队按攻击力和防御力分别排好序后,发现有些部队之间是无法比较的,比如两支部队一个攻击力强一些,另一个防御力强一些。HarryPotter将这个信息汇报给了上级,经过一系列商议后上级决定:将所有的部队分为尽可能少的m组,使每组
    内的任意两支部队的作战能力均可以比较,然后再对每组的部队进行排序。(部队A与部队B的作战能力可以比较的充要条件是A的攻击力和防御力均大于B或均小于B)

    这下HarryPotter可犯难了,他只知道如何对攻击力或防御力进行排序,但是两者接合到一起就不知如何是好了。请你HarryPotter完成他的任务。

    入力形式

    第一行读入n。其中n表示外星人部队的数目。
    以下有n行,每行有两个正整数Xi,Yi。表示第i支部队的攻击力排在第Xi位,防御力排在第Yi位。(若i!=j,则Xi!=Xj且Yi!=Yj。其中0<Xi,Yi<=n)
    规模:0<n<=100000

    出力形式

    文件第一行有一个正整数m。表示给这n支部队排序最少要分成m组。
    以下n行每行有两个正整数k,s。其中第i行表示第i支部队被分在第k组,并且排在第s位。

    サンプル入力 1

    输入样例1
    2
    1 2
    2 1
    输入样例2
    5
    3 5
    5 4
    2 1
    4 2
    1 3

    サンプル出力 1

    输出样例1
    2
    1 1
    2 1
    输出样例2
    2
    1 2
    2 3
    2 1
    2 2
    1 1

    サンプル入力 2

    2
    2 1
    1 2

    サンプル出力 2

    2
    2 1
    1 1

    ヒント

    卡快排,请用归并或堆排或sort函数

    题目没说清楚组号分配规则,观察测试数据可以发现:组内最小的x越小,组的编号就越小。