목차

Golf Bot

ps
링크acmicpc.net/…
출처BOJ
문제 번호10531
문제명Golf Bot
레벨플래티넘 2
분류

고속 푸리에 변환

시간복잡도O(N+M+klogk)
인풋사이즈N<=200,000, M<=200,000, k<=200,000
사용한 언어Python
제출기록66248KB / 724ms
최고기록724ms
해결날짜2021/02/13
태그

46단계

풀이

코드

"""Solution code for "BOJ 10531. Golf Bot".

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

import sys
from teflib import fft


def main():
    N = int(sys.stdin.readline())
    k = [int(sys.stdin.readline()) for _ in range(N)]
    M = int(sys.stdin.readline())
    d = [int(sys.stdin.readline()) for _ in range(M)]
    max_d = max(d)

    f = [1] + [0] * max_d
    for k_i in k:
        if k_i <= max_d:
            f[k_i] = 1
    f_square = fft.multiply(f, f)
    answer = sum(1 for d_i in d if f_square[d_i] > 0)
    print(answer)


if __name__ == '__main__':
    main()