목차

인간-컴퓨터 상호작용

ps
링크acmicpc.net/…
출처BOJ
문제 번호16139
문제명인간-컴퓨터 상호작용
레벨실버 1
분류

누적합

시간복잡도O(n + q)
인풋사이즈n<=200,000, q<=200,000
사용한 언어Python
제출기록79192KB / 708ms
최고기록580ms
해결날짜2022/05/31
태그

[단계]누적 합, [라이]구간합 배열

풀이

코드

"""Solution code for "BOJ 16139. 인간-컴퓨터 상호작용".

- Problem link: https://www.acmicpc.net/problem/16139
- Solution link: http://www.teferi.net/ps/problems/boj/16139

Tags: [Prefix sum]
"""

import sys


def main():
    S = sys.stdin.readline().rstrip()
    prefix_sums = {}
    for c in set(S):
        prefix_sums[c] = ([ps := 0] +
                          [ps := (ps + 1 if c == s_i else ps) for s_i in S])
    q = int(sys.stdin.readline())
    for _ in range(q):
        alpha, l, r = sys.stdin.readline().split()
        try:
            psum = prefix_sums[alpha]
            print(psum[int(r) + 1] - psum[int(l)])
        except KeyError:
            print('0')



if __name__ == '__main__':
    main()