#518. map的查询操作

map的查询操作

题目描述

输入 n 个用户的姓名和电话号码,接着进行 m 次查询操作,每次操作给定两个空格分隔的整数 c, 字符串x,其中 c[1,3],具体含义如下:

  1. 1 name: 如果用户名 name 存在则输出 name 的电话,否则输出 NO
  2. 2 name:输出用户名字典序小于 name 且距离 name 最近的用户的电话,如果不存在输出 NO
  3. 3 name:输出首个用户名字典序大于 name 的用户的电话,如果不存在输出 NO

输入格式

1 行:两个空格分隔的整数,分别表示 nm。 接下来 n 行:每行两个用空格分隔的字符串,分别表示用户的姓名和电话号码。 接下来 m 行:每行一条指令,含义和题目表述中一致。

输出格式

输出 m 行,每个查询的结果输出一行。

样例

输入#1

3 3
alex 13888888888
simba 13988888888
owen 18888888888
1 simba
2 alex
3 alex

Copy

输出#1

13988888888
NO
18888888888

Copy

数据范围

1≤𝑛,𝑚≤1000。用户名是不超过 30 个字符的字符串,电话是包含 11 个数字且首字符不为 0 的字符串。输入数据保证用户名和电话都不存在重复。