luogu#P10247. Pairing Pairs

    ID: 14206 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>图论洛谷原创Special Judge洛谷月赛

Pairing Pairs

题目背景

本题为赛时原始数据。如果想要测试 O(n)O(n),可以参考加强版

题目描述

你有 mm 个数对 (ui,vi)(u_i,v_i)(保证 1ui<vin1\le u_i<v_i\le nmm 个数对两两不同),对于每个 ii 找一个 jj 使得 ui,vi,uj,vju_i,v_i,u_j,v_j 四个数两两不同,或报告不存在。

输入格式

输入的第一行有两个正整数 n,mn,m 表示数对中数字的范围和数对的个数。

之后 mm 行,其中的第 ii 行有两个正整数 ui,viu_i,v_i 表示第 ii 个数对。

输出格式

输出一行 mm 个自然数,其中第 ii 个数表示你对这个 ii 找到的 jj。若对应的 jj 不存在则输出 00

若符合题意的 jj 有多个,任意输出一个都可以通过本题。

6 5
1 2
2 3
1 3
2 5
3 6

5 0 4 5 1

提示

【样例解释】

答案不唯一,例如 i=4i=4 时:

  • jj 也可以是 33,因为 2,5,1,32,5,1,3 四个数互不相同。所以输出 5 0 4 3 1 也可通过测试点。
  • 然而 jj 不可以是 11,因为 2,5,1,22,5,1,2 中存在相同数字。

【数据范围】

本题采用捆绑测试。 具体地,你只有通过一个子任务内所有测试点,才能拿到该子任务的分数。

子任务编号 nn\le mm\le 特殊性质 分值
11 10310^3 3×1033\times 10^3 1919
22 =103=10^3 =3×105=3\times 10^5 1616
33 3×1053\times 10^5 =n1=n-1 ui=i,vi=i+1u_i=i,v_i=i+1 33
44 vi=i+1v_i=i+1 2222
55 3×1053\times 10^5 数据随机 1111
66 2929

子任务 55 的具体生成过程:首先我指定一组 n,mn,m,接下来执行 mm 次如下流程:

  • 1n1\sim n 内抽取 xx,然后在 1n11\sim n-1 内抽取 yy
  • yxy\ge x 则把 yy 增加 11,否则交换 x,yx,y
  • 判断数对 (x,y)(x,y) 是否出现过,若是,回到第一步。
  • 输出 (x,y)(x,y)

对于全部数据,保证 1ui<vin3×1051\le u_i<v_i\le n\le 3\times 10^51m3×1051\le m\le 3\times 10^5