在蓝桥王国,一支勇士队伍依照既定的顺序排列。队伍由 n 位勇士组成,每位勇士都有一个力量值,分别为 a1, a2, . . . , an。
国王下达了一项命令,要求从这支队伍中选拔一支精英小队,这支小队需满足以下条件:
1. 小队成员必须按照原队伍的次序来组成,即小队成员的排列顺序必须与原队伍保持一致。
2. 小队的首位和末位勇士的力量必须大于小队中其他所有勇士的力量。
对于一个小队,其强度与成员数量成正比,即成员数量越多,小队越强大。
现在,国王想要知道,最强小队的成员数量是多少。请你帮他找到并计算出最强小队的成员数量。
输入的第一行包含一个整数 n,表示勇士的数量。
第二行包含 n 个整数 a1, a2, . . . , an ,相邻整数之间使用一个空格分隔,表示每位勇士的力量值。
3 3 1 2
3
【样例说明】
在给定的样例中,勇士队伍的力量值为 [3, 1, 2],我们可以选择的精英小队组建方法有:
1. 只选择第一位勇士,即 [3]。
2. 只选择第二位勇士,即 [1]。
3. 只选择第三位勇士,即 [2]。
4. 选择第一位勇士和第二位勇士,即 [3, 1]。
5. 选择第一位勇士和第三位勇士,即 [3, 2]。
6. 选择第二位勇士和第三位勇士,即 [1, 2]。
7. 选择所有勇士,即 [3, 1, 2]。
显然,选择所有勇士 [3, 1, 2] 组成的小队是最强的。因此,最强小队的成员数量为 3。
【评测用例规模与约定】
对于 10% 的评测用例,1 ≤ n ≤ 102,1 ≤ ai ≤ 103。
对于 30% 的评测用例,1 ≤ n ≤ 103,1 ≤ ai ≤ 105。
对于所有评测用例,1 ≤ n ≤ 105,1 ≤ ai ≤ 109。
C++/C题目
【考生须知】
考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。
对同一题目,选手可多次提交答案,以最后一次提交的答案为准。选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
试题包含“结果填空”和“程序设计”两种题型。结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。
代码中允许使用 STL 类库。
注意: main 函数结束必须返回 0。
注意: 所有依赖的函数必须明确地在源文件中 #include
所有源码必须在同一文件中。调试通过后,拷贝提交。
提交时,注意选择所期望的编译器类型。
试题A: 进制(本题总分:5 分)
【问题描述】
8100178706957568 这个数在用x 进制表示时(x 2 [11; 36]),仅包含数字而不包含字母,请问x 是多少。比如2588 用16 进制表示为a1c,包含字母a 和c。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题B: 逆序对期望(本题总分:5 分)
【问题描述】
有一个数组,包含1 到n 这n 个整数,初始为一个从小到大的有序排列:
{1, 2, 3, 4; ... , n} 。一次随机交换操作指:均匀随机选取两个位置i,j ∈ [1,n] 且i ≠ j ,然后交换数组中这两个位置上的数。那么对于n = 51 ,对初始数组进行两次随机交换操作之后,数组中的逆序对的数量的期望是多少个。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个实数,在提交答案时只填写这个实数,四舍五入保留两位小数,填写多余的内容将无法得分。