#NC2509L. 乒乓
乒乓
题目描述
有 个同学轮流在一张桌子上打乒乓球。第 个同学的能力值为 ,能力值两两不同。以下是他们打乒乓球的规则:
- 一开始,场上只有一个人,编号是 。队列 里从前到后表示当前排队的人。
- 接下来每一轮,处在队首的选手会弹出队列,并且和场上的人进行乒乓球比赛。进行比赛的时候,能力值高的人会赢。比赛的败者加入队尾,而胜者留在场上。
但是,为了避免强手一直霸场,他们额外制定了反垄断规则:如果一个人已经连续参加了 局比赛,那么接下来的这场比赛会无论如何视作这个人输。他会加入队尾,而胜者会留在场上。
他们一共进行了 轮比赛,你可以算出每个人参加了多少次比赛吗?
输入格式
输入包含多组数据。第一行一个正整数 () 表示数据组数。每个数据的描述如下:
- 第一行包含两个整数 ()。
- 第二行包含 个整数 ()。
保证所有 都是不同的,并且 组数据中 的总和不会超过 。
输出格式
对于每组数据,输出一行 个整数,第 个整数表示输入中的第 个同学一共参加了多少场比赛。
2
3 3
100 50 20
3 5
2 3 1
3 2 1
4 4 2
解释 #1
对于第一个样例,发生了以下情况:
- 场上 1,队列 。1 vs. 2: 1 获胜,队列变为 。
- 场上 1,队列 。1 vs. 3: 1 获胜,队列变为 。
- 场上 1,队列 。1 vs. 2: 2 获胜(触发反垄断规则),队列变为 。