#OD330. 排队游戏

排队游戏

题目解析和算法源码

华为OD机试 - 排队游戏(Java & JS & Python)_伏城之外的博客-CSDN博客

题目描述

新来的老师给班里的同学排一个队。

每个学生有一个影力值。

一些学生是刺头,不会听老师的话,自己选位置,非刺头同学在剩下的位置按照能力值从小到大排。

对于非刺头同学,如果发现他前面有能力值比自己高的同学,他不满程度就增加,增加的数量等于前面能力值比他大的同学的个数。

刺头不会产生不满。

如果整个班级累计的不满程度超过k,那么老师就没有办法教这个班级了。

输入描述

输入有三行:

第一行为n,m,k,空格隔开,分别表示班级总人数,刺头人数,最大不满程度k。

第二行为刺头所在位置(从0开始,即排队数组的下标,比如1代表队伍中第2个同学是刺头),位置的数组也是排序的。

第三行有n个数,空格隔开,表示老师排好的队中每个人的能力值,其中非刺头同学一定按照能力值从小到大排好序的。

输出描述

0 表示老师可以继续教这个班级

1 表示老师无法继续教这个班级

备注

  • n 范围是[1,100000]
  • m 范围是 [1,n]
  • k 范国是[1,1000000000]
  • 每位同学的能力值范围是[1000,100000]

用例1

输入

4 2 3
0 1
1810 1809 1801 1802

输出

1

说明

刺头在0,1位置,2号同学不满程度2(前面两个刺头能力值都比他大),3号同学不满程度2,总不满程度4,大于3。输出不能教这班(1)

用例2

输入

4 2 4
0 1
1810 1809 1801 1802

输出

0

说明

同前,4不大于4,输出能教这个班 (0)