#P17137. [KOI 2026 #1] 朋友

    ID: 19480 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>二分排序2026KOI(韩国)

[KOI 2026 #1] 朋友

题目描述

KOI 村中有一条笔直的道路。道路上共有 NN 座房屋,编号为 11NNNN 名学生分别居住在这些房屋中,每座房屋恰好住有一名学生。对于每个整数 ii1iN1 \le i \le N),学生 ii 所居住房屋的坐标为 XiX_i。不存在多座房屋位于同一坐标的情况。

此外,KOI 村中共有 NN 所学校,编号为 11NN。对于每个整数 ii1iN1 \le i \le N),学生 ii 就读于学校 SiS_i

对于学生 ii 和学生 jjiji \ne j),如果满足下列条件中的至少一个,则称这两名学生互为朋友:

  • 两名学生就读于同一所学校,并且两人所居住房屋之间的距离不超过 K1K_1
  • 两名学生就读于不同的学校,并且两人所居住房屋之间的距离不超过 K2K_2

这里,两座房屋之间的距离定义为其坐标之差的绝对值。也就是说,学生 ii 与学生 jj 所居住房屋之间的距离为 XiXj|X_i-X_j|

请编写一个程序,对每名学生计算其朋友人数。请注意,学生自己不算作自己的朋友。

输入格式

第一行输入三个整数 NNK1K_1K2K_2,整数之间以空格分隔。

接下来 NN 行给出各名学生的信息。其中,第 ii 行输入两个整数 XiX_iSiS_i,整数之间以空格分隔(1iN1 \le i \le N)。

输出格式

第一行输出 NN 个整数,整数之间以空格分隔。其中,第 ii 个整数表示学生 ii 的朋友人数(1iN1 \le i \le N)。

7 3 5
9 2
1 1
14 3
6 2
17 3
4 1
8 1
4 2 2 4 1 3 2
12 8 5
31 1
10 1
49 3
23 2
62 3
18 1
40 2
14 2
55 2
27 3
45 1
36 3
2 2 1 2 0 3 2 2 0 2 2 2

提示

限制条件

  • 输入中给出的所有数均为整数。
  • 2N5000002 \le N \le 500\,000
  • 1K1,K21091 \le K_1,K_2 \le 10^9
  • 对于每个整数 ii1iN1 \le i \le N),均有 1Xi1091 \le X_i \le 10^9
  • 对于任意整数 i,ji,j1i<jN1 \le i<j \le N),均有 XiXjX_i \ne X_j
  • 对于每个整数 ii1iN1 \le i \le N),均有 1SiN1 \le S_i \le N

子任务

  1. 2020 分)N3000N \le 3\,000
  2. 1414 分)K1,K210K_1,K_2 \le 10
  3. 2525 分)对于每个整数 ii1iN1 \le i \le N),均有 XiNX_i \le NSi2S_i \le 2
  4. 2121 分)S1=S2==SN=1S_1=S_2=\cdots=S_N=1
  5. 1010 分)对于每个整数 ii1iN1 \le i \le N),均有 Si2S_i \le 2
  6. 1010 分)无附加限制。

翻译由 ChatGPT-5.6 完成