728x90
https://www.acmicpc.net/problem/9825
문제를 보면 다음과 같이 언급하고 있다.
Important note: You can assume that the result will always be less than 1,000,000.
이 말을 통해 문제에서는 연산의 제한이 $10^{6}$임을 암시하고 있다.
문제에서 제시한 계산식
으로만 보면 많은 연산이 필요할 것으로 보이나, 제한을 걸고 있기 때문에 안심하고 브루트포스를 해도 되는 것으로 이해할 수 있다.
문제의 제한을 이해했으므로 나머지는 신경 쓸 필요 없이 문제에서 제시한 함수
를 계산하면 문제 없이 정답을 받을 수 있다.
정답 코드 - python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
def calc_poly(terms: list):
poly_sum = sum(terms)
ret = poly_sum ** 4
ret += 2 * poly_sum ** 2
ret %= 5
return ret + 1
def solve():
lt = list(map(int, input().split()))
n = lt[0]
idx = 1
term_start = []
term_cur = []
term_last = []
for i in range(n):
term_start.append(lt[idx])
term_cur.append(lt[idx])
term_last.append(lt[idx + 1])
idx += 2
ans = 0
while term_cur[0] <= term_last[0]:
ans += calc_poly(term_cur)
term_cur[n - 1] += 1
for i in range(n - 1, 0, -1):
if term_cur[i] > term_last[i] and i > 0:
term_cur[i] = term_start[i]
term_cur[i - 1] += 1
else:
break
print(ans)
if __name__ == "__main__":
solve()
|
cs |
728x90
'백준 > 탐색' 카테고리의 다른 글
백준 1174 - 줄어드는 수 (0) | 2024.11.26 |
---|---|
백준 1522 - 문자열 교환 (0) | 2022.07.18 |
[KOI] 백준 8983 - 사냥꾼 (0) | 2022.06.27 |
[KOI] 백준 2503 - 숫자 야구 (0) | 2022.06.22 |
[KOI] 백준 2502 - 떡 먹는 호랑이 (0) | 2022.05.26 |