刚刚越过绝境长城,只见天空中出现了炫目的光芒 —— 圣诞老人出现了。
元旦三侠立刻进入战斗。生蛋侠、圆蛋侠和零蛋侠分别有
元旦三侠的激光炮的威力已经按从小到大的顺序排好序了,即
由于元旦三侠精力有限,他们得废弃掉
赶快帮助元旦三侠,让激光炮投入战斗吧!你只需要告诉他们威力第
任务
你需要编写一个函数 query_kth,以确定威力值第
- query_kth(n_a, n_b, n_c, k)
- n_a:生蛋侠拥有的激光炮数目
。保证 。 - n_b:圆蛋侠拥有的激光炮数目
。保证 。 - n_c:零蛋侠拥有的激光炮数目
。保证 。 :要查询的排名 。保证 。
- n_a:生蛋侠拥有的激光炮数目
你可以调用三个函数 get_a、get_b、get_c 以帮助你确定第
- get_a(i) 将返回
。如果 在 之外,该函数将返回 。 - get_b(i) 将返回
。如果 在 之外,该函数将返回 。 - get_c(i) 将返回
。如果 在 之外,该函数将返回 。
在一组测试数据中,query_kth 只会被调用一次。
实现细节
本题只支持 C/C++/Pascal。
你只能提交一个源文件实现如上所述的 query_kth 函数,并且遵循下面的命名和接口。
C/C++
你需要包含头文件 kth.h。
int query_kth(int n_a, int n_b, int n_c, int k);
函数 get_a, get_b, get_c 的接口信息如下。
int get_a(int p);
int get_b(int p);
int get_c(int p);
Pascal
你需要使用单元 graderhelperlib。
function query_kth(n_a, n_b, n_c, k : longint) : longint;
函数 get_a, get_b, get_c 的接口信息如下。
function get_a(p : longint) : longint;
function get_b(p : longint) : longint;
function get_c(p : longint) : longint;
如果有不清楚的地方,见样例及测评库下载,内附了样例程序。
评测方式
评测系统将读入如下格式的输入数据:
- 第
行: - 第
行: 个整数,第 个整数表示 。 - 第
行: 个整数,第 个整数表示 。 - 第
行: 个整数,第 个整数表示 。
在 query_k 返回后,评测系统将输出你的答案以及 get_a, get_b, get_c 三个函数的总调用次数。
样例一
input
2 3 3 5 1 2 1 5 6 2 3 3
output
3 6
explanation
所有激光炮从小到大排序后为
样例二
见样例及测评库下载。
限制与约定
共
测试点编号 | 特殊限制 |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | 无 |
6 | |
7 | |
8 | |
9 | |
10 |
对于所有测试点,
时间限制:
空间限制: