三目运算
题目描述
三目运算是一种比较特殊的运算,功能类似于 if
语句,其语法格式如下:
条件?数值1:数值2
,三目运算得到的结果也是数值。当条件成立时得到的结果是数值 1,不成立时得到的结果为数值 2。
例如,x>5?8:6
就是一种三目运算表达式(也是分段常数表达式,见下文)。当
x
=
7
x=7
x=7 时,该表达式的结果为
8
8
8,而
x
=
3
x=3
x=3 时,该表达式的结果为
6
6
6。
本题中,称满足下列条件中至少一条的字符串 S S S 是分段常数表达式:
- 十进制正整数
a
a
a,如
243
,是分段常数表达式。 - 如果 a a a 为一个十进制正整数, p , q p,q p,q 为两个分段常数表达式,则 x> a ? p : q \texttt{x>}a\texttt{?}p\texttt{:}q x>a?p:q 是分段常数表达式。
- 如果 a a a 为一个十进制正整数, p , q p,q p,q 为两个分段常数表达式,则 x< a ? p : q \texttt{x<}a\texttt{?}p\texttt{:}q x<a?p:q 是分段常数表达式。
(后两条条件中, x > a x>a x>a 和 x < a x<a x<a 是条件, p , q p,q p,q 为数值,该表达式是三目运算表达式。)
例如,x>154?220:x<37?16:10
是一个分段常数表达式,因为 220
和 x<37?16:10
都是分段常数表达式,从而整个表达式由第 2 条规则也是分段常数表达式。
给出一个分段常数表达式 S S S,保证出现的正整数均不超过 m m m。
yummy 有 q q q 个询问,每次给出一个自然数 x x x 的值,希望你求出分段常数表达式的值。
输入格式
输入的第一行有两个正整数 m , q m,q m,q,分别表示表达式出现数字的最大可能值和询问个数。
第二行有一个字符串 S S S,表示这个分段常数表达式。
之后有 q q q 行,每行有一个自然数 x x x,表示一次询问。
输出格式
对于每个询问输出一行一个正整数,表示表达式的结果。
样例 #1
样例输入 #1
20 5
x>12?x<15?4:10:x<12?14:7
15
12
14
7
1000000
样例输出 #1
10
7
4
14
10
样例 #2
样例输入 #2
参见 expr/expr2.in
样例输出 #2
参见 expr/expr2.ans
样例 #3
样例输入 #3
参见 expr/expr3.in
样例输出 #3
参见 expr/expr3.ans
样例 #4
样例输入 #4
参见 expr/expr4.in
样例输出 #4
参见 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 解释】
该样例满足测试点 6 6 6 的性质。
【样例 3 解释】
该样例满足测试点 10 10 10 的性质。
【样例 4 解释】
该样例满足测试点 19 19 19 的性质。
【数据范围】
设 n n n 为 S S S 中三目运算符的个数。(选手可以通过 n n n 来估计 S S S 的串长。)
对于全体数据,保证 0 ≤ n ≤ 1 0 5 0\le n\le 10^5 0≤n≤105, 1 ≤ m ≤ 1 0 5 1\le m\le 10^5 1≤m≤105, 1 ≤ q ≤ 1 0 5 1\le q\le 10^5 1≤q≤105, 1 ≤ x ≤ 1 0 9 1\le x\le 10^9 1≤x≤109,且 S S S 是分段常数表达式。
测试点编号 | n ≤ n\le n≤ | m ≤ m\le m≤ | q ≤ q\le q≤ |
---|---|---|---|
1 1 1 | 0 0 0 | 1 0 5 10^5 105 | 10 10 10 |
2 2 2 | 1 1 1 | 1 0 5 10^5 105 | 10 10 10 |
3 ∼ 5 3\sim 5 3∼5 | 100 100 100 | 9 9 9 | 10 10 10 |
6 ∼ 9 6\sim 9 6∼9 | 100 100 100 | 1 0 5 10^5 105 | 10 10 10 |
10 ∼ 12 10\sim 12 10∼12 | 1 0 5 10^5 105 | 9 9 9 | 10 10 10 |
13 ∼ 16 13\sim 16 13∼16 | 1 0 5 10^5 105 | 1 0 5 10^5 105 | 10 10 10 |
17 ∼ 18 17\sim 18 17∼18 | 1 0 5 10^5 105 | 9 9 9 | 1 0 5 10^5 105 |
19 ∼ 25 19\sim 25 19∼25 | 1 0 5 10^5 105 | 1 0 5 10^5 105 | 1 0 5 10^5 105 |
附件下载
https://www.luogu.com.cn/fe/api/problem/downloadAttachment/hgrjxro5?contestId=200686