C1070 - 弹珠在哪里
题目描述
Raju和Meena喜欢玩弹珠。他们有很多写着数字的弹珠。一开始,Raju会按照弹珠上写的数字的升序依次放置弹珠。
然后,Meena会要求Raju找到第一个带有某个数字的弹珠,她会数1...2...3...。如果Raju回答正确,他会得到一分;如果Raju回答错误,这一分则归Meena。在固定次数的尝试之后,游戏结束,得分最多的玩家获胜。
今天轮到你扮演Raju了,作为聪明的孩子,你将会得到计算机的帮助。但不要小看Meena,她写了一个程序来追踪你花费多少时间回答所有问题。
现在你必须编写一个程序,这个程序将会帮助你扮演Raju的角色。
输入格式
有多组测试案例
每个测试案例以两个整数开头:N 表示弹珠的数量,Q 表示Meena会提出的查询数量
接下来的 N 行将包含写在 N 个弹珠上的数字,这些弹珠上的数字不会以任何特定的顺序出现。
接下来的 Q 行将包含 Q 个查询,每个查询给出一个待查询的数字
当 N = 0 且 Q = 0时代表输入结束
输出格式
对于每组测试案例,输出案例的序列号。
对于每个查询,打印一行输出,这一行的格式将取决于查询的数字是否出现在任何弹珠上。
以下描述了两种不同的格式:
x found at y,如果找到了编号为 x 的第一个弹珠,并且它位于位置 y,位置从 1 到 N 编号x not found,如果编号为 x 的弹珠不存在
查看示例输入的输出以获取详细信息
输入输出样例
| 输入样例 | 输出样例 |
|---|---|
| 4 1 2 3 5 1 5 5 2 1 3 3 3 1 2 3 0 0 |
CASE# 1: 5 found at 4 CASE# 2: 2 not found 3 found at 3 |
数据范围与提示
50%的数据:$1 \le N, Q \le 1000$,一共不超过5组测试数据,N个整数和待查询的Q个整数中每个整数都在0 ~ 100000之间
100%的数据:$1 \le N, Q \le 100000$,一共不超过5组测试数据,N个整数和待查询的Q个整数中每个整数都在0 ~ 100000之间
提示点
数据量较大,如果使用C++读写(cin + cout),则需要用到C++加速读写的方式
const char endl = '\n';
ios::sync_with_stdio(false);
cin.tie(0);
如果使用C语言风格读写(scanf + printf),则不需要使用上面的C++加速读写的方式
测试点数目
共10个测试点,每个测试点10分
时间与内存限制
每个测试点时间:1000ms(1.0s),内存:256MiB
输入输出模式
本OJ支持两种输入输出模式