模式查找

时间限制: 2500 ms 内存限制: 5120 kb
总通过人数: 0 总提交人数: 0

题目描述

给你n位同学的学号和GPA(已经按照GPA降序为第一关键字、学号升序为第二关键字排好序),再给k次GPA为y分的查询,查查都有谁的GPA是y分吧~

输入

多组测试数据。

每组测试数据第一行为正整数n与k,表示n位同学与k次查询(0<n≤1000000, 0<k≤1000000);

接下来n行,每行两个数,第一个数为学号(保证在int范围内且没有前导0),第二个数为该同学对应的GPA分数x(0≤x≤4且x保证为至多保留两位小数的浮点数),保证所给数据已经按照GPA降序为第一关键字、学号升序为第二关键字排好序;

接下来k行,每行一个浮点数GPA分数y,表示查询谁的GPA为y分,保证0≤y≤4且为至多保留两位小数的浮点数。

输出

对于每次查询,输出一行,GPA获得y分的同学的学号,按输入顺序输出。

如果没有同学GPA为y分,则输出"No solution!"(不含引号)。

输入样例

3 5
10061061 4
10061000 3.98
14211140 3.98
4.00
3.98
3.50
3.5
4

输出样例

10061061
10061000 14211140
No solution!
No solution!
10061061

Hint

数据量很大,请使用scanf/printf进行输入输出。

对浮点数进行强制类型转换有较大的误差。

相关推荐