A1789 | 拳击教练
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
在一个拳击爱好者的网站中,有 $n$ 名拳击选手的资料,第 $i$ 位选手有能力值 $ri$。
当选手 $a$ 的能力值大于 选手 $b$ 的能力值时,$a$ 可以成为 $b$ 的教练,但如果 $a$ 选手 与 $b$ 选手是死对头,$a$ 就无法成为 $b$ 的教练。
现在给你 $n$ 个选手的能力值,以及 $k$ 对选手,为死对头的关系。
对于每一个选手,他可以成为成为多少个选手的教练。
当选手 $a$ 的能力值大于 选手 $b$ 的能力值时,$a$ 可以成为 $b$ 的教练,但如果 $a$ 选手 与 $b$ 选手是死对头,$a$ 就无法成为 $b$ 的教练。
现在给你 $n$ 个选手的能力值,以及 $k$ 对选手,为死对头的关系。
对于每一个选手,他可以成为成为多少个选手的教练。
输入格式
第一行输入两个数,$n$ 和 $k$ $(2 \le n \le 2 \cdot 10^5$, $0 \le k \le \min(2 \cdot 10^5, \frac{n \cdot (n - 1)}{2}))$,代表选手的个数,以及有 $k$ 对选手是死对头。
第二行包含 $n$ 个整数,$r_1, r_2, \dots, r_n$ $(1 \le r_i \le 10^{9})$,其中 $ri$ 是第 $i$ 个选手的能力值。
接下来有 $k$ 行,每一行有两个数 $a$,$b$,表示 $a$ 与 $b$ $(1 \leq a,b \leq n,a \neq b)$ 是死对头。
第二行包含 $n$ 个整数,$r_1, r_2, \dots, r_n$ $(1 \le r_i \le 10^{9})$,其中 $ri$ 是第 $i$ 个选手的能力值。
接下来有 $k$ 行,每一行有两个数 $a$,$b$,表示 $a$ 与 $b$ $(1 \leq a,b \leq n,a \neq b)$ 是死对头。
输出格式
输出 $n$ 个数,按输入的顺序,输出每位选手能成为多少人的教练。
输入输出样例
输入 #1
4 2 10 4 10 15 1 2 4 3
输出 #1
0 0 1 2
输入 #2
10 4 5 4 1 5 4 3 7 1 2 5 4 6 2 1 10 8 3 5
输出 #2
5 4 0 5 3 3 9 0 2 5
在第一个测试样例中,比
选手1能力要小的有选手2,但他们是死对头,所以选手1不能成为任何人的教练。没有人的能力值比选手2要小。选手3可以做选手2的教练。选手4比前面选手的能力值都要大,但与选手3是死对头,所以他只能成为选手1与选手2的教练。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?