1702: PL13 智能机器人

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:0

题目描述

你是一名象棋教练,带领几个小学生参加“人机象棋对抗赛”。小选手们轮番上阵,与一个智能机器人对战。
你的小选手们的棋艺水平有高有低。用“经验值”评价每人的水平。
假设棋局的结果完全由双方的经验值决定,经验值高的一方获胜,双方经验值相同则会和棋。
机器人初始的经验值为0,但是每下一局棋后,机器人的经验值就会增加1。
你要让学生们每人与机器人下一局棋。你需要合理安排他们的出场顺序,以赢下尽可能多的棋局。
输入你的所有学生(选手)的经验值,输出你方最多能赢多少局。
例如,你的4个学生的经验值分别是2,1,1,4,你按下表的顺序安排他们出场,可以赢下对战中的3局,这是最优的方案。

输入

第一行一个正整数,为你的学生数量n(2<=n<=20);
第二行,按字符串形式输入n个正整数(大小在1~20范围内),相邻两个正整数用一个空格分隔,每个正整数表示一个学生的经验值。
提示:
s = input() #输入一个字符串,赋值给s
a = s.split(' ') #将字符串s按空格拆分,保存到列表a中
lis = [int(i) for i in a] #将列表a的元素转换成整数,保存到列表lis中

输出

一个整数,表示你的学生们最多能赢多少局。

样例输入 复制

4
2 1 1 4

样例输出 复制

3

提示

贪心算法/模拟算法

来源/分类