luogu#P11186. 三目运算
三目运算
题目描述
三目运算是一种比较特殊的运算,功能类似于 if
语句,其语法格式如下:
条件?数值1:数值2
,三目运算得到的结果也是数值。当条件成立时得到的结果是数值 1,不成立时得到的结果为数值 2。
例如,x>5?8:6
就是一种三目运算表达式(也是分段常数表达式,见下文)。当 时,该表达式的结果为 ,而 时,该表达式的结果为 。
本题中,称满足下列条件中至少一条的字符串 是分段常数表达式:
- 十进制正整数 ,如
243
,是分段常数表达式。 - 如果 为一个十进制正整数, 为两个分段常数表达式,则 是分段常数表达式。
- 如果 为一个十进制正整数, 为两个分段常数表达式,则 是分段常数表达式。
(后两条条件中, 和 是条件, 为数值,该表达式是三目运算表达式。)
例如,x>154?220:x<37?16:10
是一个分段常数表达式,因为 220
和 x<37?16:10
都是分段常数表达式,从而整个表达式由第 2 条规则也是分段常数表达式。
给出一个分段常数表达式 ,保证出现的正整数均不超过 。
yummy 有 个询问,每次给出一个自然数 的值,希望你求出分段常数表达式的值。
输入格式
输入的第一行有两个正整数 ,分别表示表达式出现数字的最大可能值和询问个数。
第二行有一个字符串 ,表示这个分段常数表达式。
之后有 行,每行有一个自然数 ,表示一次询问。
输出格式
对于每个询问输出一行一个正整数,表示表达式的结果。
20 5
x>12?x<15?4:10:x<12?14:7
15
12
14
7
1000000
10
7
4
14
10
参见 expr/expr2.in
参见 expr/expr2.ans
参见 expr/expr3.in
参见 expr/expr3.ans
参见 expr/expr4.in
参见 expr/expr4.ans
提示
【样例 1 解释】
如果我们进行适当的换行和缩进可以得到:
x>12? //如果 x>12
x<15? //那么判断 x<15 是否成立
4 //如果是则得到 4
:10 //如果不是则得到 10
:x<12? //否则(如果 x<=12) 判断 x<12 是否成立
14 //如果是则返回 14
:7 //如果不是则返回 7
按照这个思路模拟即可得到样例输出。
【样例 2 解释】
该样例满足测试点 的性质。
【样例 3 解释】
该样例满足测试点 的性质。
【样例 4 解释】
该样例满足测试点 的性质。
【数据范围】
设 为 中三目运算符的个数。(选手可以通过 来估计 的串长。)
对于全体数据,保证 ,,,,且 是分段常数表达式。
测试点编号 | |||
---|---|---|---|