본문 바로가기

백준/탐색

백준 9825 - MODSUM

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 - 10-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