ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 10422 |
문제명 | 괄호 |
레벨 | 골드 4 |
분류 |
수학, 카탈랑 수 |
시간복잡도 | O(n+T) |
인풋사이즈 | n<=5000, T<=100 |
사용한 언어 | Python |
제출기록 | 31508KB / 100ms |
최고기록 | 60ms |
해결날짜 | 2020/11/16 |
"""Solution code for "BOJ 10422. 괄호".
- Problem link: https://www.acmicpc.net/problem/10422
- Solution link: http://www.teferi.net/ps/problems/boj/10422
"""
MOD = 1_000_000_007
MAX_SIZE = 25000
def main():
inv = [0, 1]
for i in range(2, MAX_SIZE + 3):
inv.append(-(MOD // i) * inv[MOD % i])
catalan_nums = [1]
for i in range(MAX_SIZE):
catalan_nums.append(2 * (2 * i + 1) * inv[i + 2] * catalan_nums[i] %
MOD)
T = int(input())
for _ in range(T):
L = int(input())
print(0 if L % 2 else catalan_nums[L // 2])
if __name__ == '__main__':
main()