만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

거의 주기 문자열

시간 제한2초메모리 제한512 MB

요약
각 질의마다 부분 문자열 S[l..r]에서 최대 한 글자를 바꿔 주기 t인 문자열로 만들 수 있는지 판정한다.
난이도

어려움10점 중 8점

유형
문자열, 해시맵, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

문자열 SS가 주어진다. 이 문자열 SS에 대해 QQ개의 쿼리에 답하라. ii번째 쿼리에서는 S[li,ri]S[l_i, r_i]에서 한 글자까지 바꿀 수 있을 때, S[li,ri]S[l_i, r_i]를 주기 tit_i인 문자열로 만들 수 있는지 판정하라. S[l,r]S[l, r]은 문자열 SS의 ll번째 문자부터 rr번째 문자까지의 부분 문자열을 나타낸다.

문자열 WW가 주기 tt인 문자열이라는 것은 i=1,2,...,∣W∣−ti = 1, 2, ..., |W|-t에 대해 Wi=Wi+tW_i = W_{i+t}라는 것이다.

입력

입력은 다음 형식으로 표준 입력에서 주어진다.

SS

QQ

l1l_1 r1r_1 t1t_1

......

lQl_Q rQr_Q tQt_Q

출력

QQ줄에 걸쳐 출력하라. ii번째 줄에는 ii번째 쿼리의 답을 Yes 또는 No로 출력하라.

제한

  • 1≤∣S∣≤1051 \leq |S| \leq 10^5
  • 1≤Q≤1051 \leq Q \leq 10^5
  • 1≤li≤ri≤∣S∣1 \leq l_i \leq r_i \leq |S|
  • 1≤ti≤ri−li+11 \leq t_i \leq r_i-l_i+1
  • SS는 알파벳 소문자로만 이루어져 있다

예제2

  1. 예제 1

    입력
    abcabcaxcabc
    4
    1 9 3
    8 12 3
    1 4 2
    2 3 2
    
    예상 출력
    Yes
    Yes
    No
    Yes
    
  2. 예제 2

    입력
    isuruu
    4
    3 6 1
    3 6 2
    3 6 3
    2 4 1
    
    예상 출력
    Yes
    Yes
    Yes
    No