A2231 | Monkey King
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
曾经在一个森林中居住着 $N$ 只好斗的猴子。在最初他们我行我素,互不认识。但是猴子们不能避免争吵,且两只猴子只会在不认识对方时发生争吵,当争吵发生时,双方会邀请它们各自最强壮的朋友并发起决斗(决斗的为各自最强壮的朋友)。当然,在决斗之后两只猴子和他们各自的伙伴都认识对方了(成为朋友),虽然他们曾经有过冲突,但是他们之间绝不会再发生争吵了。
假设每只猴子有一个强壮值,强壮值将在一场决斗后减少为原先的一半(例如 $10$ 会减少到 $5$,而 $5$ 会减少到 $2$,即向下取整)。
我们也假设每只猴子都认识它自己(是自己的朋友)。即当他是他朋友中最强壮的,他自己就会去决斗。
假设每只猴子有一个强壮值,强壮值将在一场决斗后减少为原先的一半(例如 $10$ 会减少到 $5$,而 $5$ 会减少到 $2$,即向下取整)。
我们也假设每只猴子都认识它自己(是自己的朋友)。即当他是他朋友中最强壮的,他自己就会去决斗。
输入格式
有多组数据,每一组数据有两部分。
第一部分:第一行包含一个整数 $N$ 表示猴子的数量。后为 $N$ 行,每行一个数字为第 $i$ 只猴子的强壮值 $s_{i}$。
第二部分:第一行包含一个整数 $M$ 表示发生了 $M$ 次冲突。后为 $M$ 行,每行两个整数 $x$ 和 $y$,表示第 $x$ 只猴子和第 $y$ 只猴子之间发生了冲突。
第一部分:第一行包含一个整数 $N$ 表示猴子的数量。后为 $N$ 行,每行一个数字为第 $i$ 只猴子的强壮值 $s_{i}$。
第二部分:第一行包含一个整数 $M$ 表示发生了 $M$ 次冲突。后为 $M$ 行,每行两个整数 $x$ 和 $y$,表示第 $x$ 只猴子和第 $y$ 只猴子之间发生了冲突。
输出格式
对于每次冲突,如果两只猴子认识对方,输出
说明/提示
$N,M\leq 100000$,$s_{i}\leq 32768$
-1,否则输出决斗后他们朋友中最强壮的猴子的强壮值。说明/提示
$N,M\leq 100000$,$s_{i}\leq 32768$
输入输出样例
输入 #1
5 20 16 10 10 4 5 2 3 3 4 3 5 4 5 1 5
输出 #1
8 5 5 -1 10
题目可能有多组数据
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?