é•·ã•nã®æ–‡å—列s=s1,s2,…,snãŠã‚ˆã³m個ã®ã‚¯ã‚¨ãƒªãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚ å„クエリqk (1 ≤ k ≤ m)ã¯ã€"L++", "L--", "R++", "R--"ã®4種類ã®ã„ãšã‚Œã‹ã§ã‚り〠k番目ã®ã‚¯ã‚¨ãƒªqkã«å¯¾ã—ã¦l[k]ã¨r[k]を以下ã§å®šç¾©ã™ã‚‹ã€‚
L++:l[k]=l[k-1]+1,r[k]=r[k-1]
L--:l[k]=l[k-1]-1,r[k]=r[k-1]
R++:l[k]=l[k-1],r[k]=r[k-1]+1
R--:l[k]=l[k-1],r[k]=r[k-1]-1
但ã—ã€l[0]=r[0]=1ã§ã‚る。
ã“ã®æ™‚ã€m個ã®éƒ¨åˆ†æ–‡å—列 sl[k], sl[k]+1, …, sr[k]-1, sr[k] (1 ≤ k ≤ m) ã«ã¤ã„ã¦ã€ä½•ç¨®é¡žã®æ–‡å—列ãŒä½œã‚‰ã‚Œã‚‹ã‹ã‚’ç”ãˆã‚ˆã€‚
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹
n m
s
q1
q2
…
qm
æ–‡å—列sã¯å°æ–‡å—アルファベットã‹ã‚‰ãªã‚‹
1 ≤ n ≤ 3×105
1 ≤ m ≤ 3×105
qk(1 ≤ k ≤ m)ã¯ã€"L++"ã€"L--"ã€"R++"ã€"R--"ã®ã„ãšã‚Œã‹
1 ≤ l[k] ≤ r[k] ≤ n (1 ≤ k ≤ m)
å•é¡Œã®è§£ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆ
5 4 abcde R++ R++ L++ L--
3
l[1]=1, r[1]=2ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"ab"ã§ã‚ã‚‹
l[2]=1, r[2]=3ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"abc"ã§ã‚ã‚‹
l[3]=2, r[3]=3ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"bc"ã§ã‚ã‚‹
l[4]=1, r[4]=3ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"abc"ã§ã‚ã‚‹
よã£ã¦ã€ç”Ÿæˆã•ã‚Œã‚‹æ–‡å—列ã¯{"ab","abc","bc"}ã®3種類ã§ã‚る。
4 6 abab R++ L++ R++ L++ R++ L++
4
l[1]=1, r[1]=2ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"ab"ã§ã‚ã‚‹
l[2]=2, r[2]=2ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"b"ã§ã‚ã‚‹
l[3]=2, r[3]=3ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"ba"ã§ã‚ã‚‹
l[4]=3, r[4]=3ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"a"ã§ã‚ã‚‹
l[5]=3, r[5]=4ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"ab"ã§ã‚ã‚‹
l[6]=4, r[6]=4ã§ã‚ã‚Šã€éƒ¨åˆ†æ–‡å—列ã¯"b"ã§ã‚ã‚‹
よã£ã¦ã€ç”Ÿæˆã•ã‚Œã‚‹æ–‡å—列ã¯{"a","ab","b","ba"}ã®4種類ã§ã‚る。
10 13 aacacbabac R++ R++ L++ R++ R++ L++ L++ R++ R++ L-- L-- R-- R--
11