身高推算

测试数据来自 system/2872

作业已超过截止时间,您无法递交本题目。

时间限制:1秒  内存限制:256M


【问题描述】

  幼儿园的 \(n\) 小朋友站成一排,并从左到右被编号为 \(1..n\)。每头小朋友的身高为正整数,其中最高一个小朋友编号为 \(k\) 和身高为 \(h\)。注意,身高为H的小朋友可能不止 \(k\) 一个。

  现在告诉你 \(m\) 条信息,每条信息格式为 \(a\ b\):表示 \(a\) 号小朋友能看到 \(b\) 号小朋友,即 \(b\) 号小朋友的身高 不低于 \(a\) 号小朋友的身高,并且在 \(a\) 号和 \(b\) 号之间的小朋友的身高都 严格低于 \(a\) 号小朋友的身高。

  请你推算每个小朋友的最大可能的身高,我们保证给出的数据都是正确的,且一定有满足限制条件的解。

【输入格式】

  第 \(1\) 行包含四个用空格分开的整数:\(n, k, h\) 和 \(m\);
  第 \(2..m+1\) 行:每行包含两个用空格分开的整数 \(a\) 和 \(b\),表示小朋友 \(a\) 能看到小朋友 \(b\)。注意:\(1≤a,b≤n\),且有可能 \(a\) 比 \(b\) 大。

【输出格式】

  输出 \(n\) 行,第 \(i\) 行包含一个整数,表示第 \(i\) 号小朋友的可能的最大身高。

【输入输出样例】

 Input

8 1 7 6
1 2
3 4
2 4
7 6
6 8
5 8

 Output

7
7
6
7
7
6
5
7

【数据说明】

  对于 \(100\%\) 的数据,\(1 ≤ n ≤ 10000\),\(1 ≤ h ≤ 1000\),\(0 ≤ m ≤ 10000\)

【来源】

  Mr.he

DAG图与拓扑排序练习题

未认领
状态
已结束
题目
10
开始时间
2024-04-26 00:00
截止时间
2024-07-06 23:59
可延期
24.0 小时