为了更好的阅读体检,可以查看我的算法学习网
在线评测链接:P1153
题目内容
在某个小镇上,有 n n n 个居民。这个小镇上有些人很诚实,从来不说谎,有些人则非常狡猾,总是欺骗他人。这个小镇的领导者,塔子哥,非常想知道谁是正直者,谁是骗子。但是他发现,这些人非常狡猾,不会轻易暴露自己的身份。
塔子哥想了很长时间,最终想出了一个办法:他会把所有人的身份(即是正直者还是欺骗者)用一个长度为
n
n
n 的字符串来表示,其中第
i
i
i 个字符表示第
i
i
i 个人的身份。如果这个字符是 'H'
,那么这个人是正直者;如果这个字符是 'L'
,那么这个人是欺骗者。
然后,塔子哥决定进行一次寻访
q
q
q 个居民,若居民
x
x
x 指证居民
y
y
y 是正直者,则输出 "honester"
,如果是欺诈者,则输出 "liar"
。为了保证询问的效率,他决定将这个问题交给你解决。
输入描述
第一行输入一个正整数 n n n ,代表人数。
第二行输入一个长度为
n
n
n 的字符串,第
i
i
i 个字符为 'H'
代表第
i
i
i 个人是正直者, 'L'
代表欺诈者。
第三行输出一个正整数 q q q ,代表询问的次数。
接下来的 q q q 行,每行输入两个正整数 x x x 和 y y y ,代表一次询问。
1 ≤ n , q ≤ 1 0 4 1≤n,q≤10^4 1≤n,q≤104
1 ≤ x , y ≤ n 1\le x,y\le n 1≤x,y≤n
x ≠ y x≠y x=y
输出描述
输出 q q q 行,分别代表每次指证的结果。
若
x
x
x 指证
y
y
y 是正直者,则输出 "honester"
。如果是欺诈者,则输出 "liar"
。
样例
输入
6
HLLHHH
5
1 2
2 3
3 6
4 5
5 1
输出
liar
honester
liar
honester
honester