목차

팰린드롬??

ps
링크acmicpc.net/…
출처BOJ
문제 번호11046
문제명팰린드롬??
레벨플래티넘 5
분류

Manacher

시간복잡도O(n+m)
인풋사이즈n<=1,000,000, m<=1,000,000
사용한 언어Python
제출기록153312KB / 3824ms
최고기록3824ms
해결날짜2021/07/04

풀이

코드

"""Solution code for "BOJ 11046. 팰린드롬??".

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

Tags: [Manacher]
"""

import sys
from teflib import string


def main():
    N = int(sys.stdin.readline())
    nums = [int(x) for x in sys.stdin.readline().split()]
    modified_nums = [-1] * (N + N + 1)
    modified_nums[1::2] = nums
    radiuses = string.palindrome_radiuses(modified_nums)
    
    M = int(sys.stdin.readline())
    for _ in range(M):
        S, E = [int(x) for x in sys.stdin.readline().split()]
        center = S + E - 1
        rad = E - S        
        print('1' if rad <= radiuses[center] else '0')


if __name__ == '__main__':
    main()