-
[λ°±μ€] 20438 μΆμμ²΄ν¬ with PythonPS 2022. 6. 5. 16:01728x90λ°μν
π BOJ 20438 μΆμ체ν¬
π‘ 쑰건
νμλ€μ μ μ μμλλ‘ 3λ²λΆν° N + 2λ²κΉμ§ μ μ₯ λ²νΈλ₯Ό λ°κ² λλ€.
μ§νμ΄κ° ν νμμκ² μΆμ μ½λλ₯Ό 보λ΄κ² λλ©΄, ν΄λΉ νμμ λ³ΈμΈμ μ μ₯ λ²νΈμ λ°°μμΈ νμλ€μκ² μΆμ μ½λλ₯Ό 보λ΄μ΄
ν΄λΉ κ°μμ μΆμμ ν μ μκ²λ νλ€. νμ§λ§, Kλͺ μ μ‘Έκ³ μλ νμλ€μ μΆμ μ½λλ₯Ό μ μΆνμ§ μκ³ , λ€λ₯Έ νμλ€μκ² λ³΄λ΄μ§ μλλ€.
- μ§νμ΄λ 무μμλ‘ ν λͺ
μ νμμκ² μΆμ μ½λλ₯Ό 보λ΄λ νμλ₯Ό Qλ² λ°λ³΅ν λ€,
μΆμλΆ μ 리λ₯Ό μν΄ νΉμ ꡬκ°μ μ μ₯ λ²νΈλ₯Ό λ°μ νμλ€ μ€μμ μΆμμ΄ λμ§ μμ νμλ€μ μλ₯Ό ꡬνκ³ μΆλ€.
- 1λ²μ§Έ μ€μ νμμ μ N, μ‘Έκ³ μλ νμμ μ K, μ§νμ΄κ° μΆμ μ½λλ₯Ό λ³΄λΌ νμμ μ Q, μ£Όμ΄μ§ ꡬκ°μ μ Mμ΄ μ£Όμ΄μ§λ€.
(1 β€ K, Q β€ N β€ 5,000, 1 β€ M β€ 50,000)
- 2λ²μ§Έ μ€κ³Ό 3λ²μ§Έ μ€μ κ°κ° Kλͺ μ μ‘Έκ³ μλ νμμ μ μ₯ λ²νΈλ€κ³Ό Qλͺ μ μΆμ μ½λλ₯Ό λ°μ νμμ μ μ₯ λ²νΈλ€μ΄ μ£Όμ΄μ§λ€.
- 4λ²μ§Έ μ€λΆν° Mκ°μ μ€ λμ ꡬκ°μ λ²μ S, Eκ° κ³΅λ°±μ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. (3 β€ S < E β€ N + 2)
- λμ ν©, ꡬν μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from sys import stdin n, k, q, m = map(int, stdin.readline().split()) sleep = [0 for _ in range(n + 3)] check = [0 for _ in range(n + 3)] for i in map(int, stdin.readline().split()): sleep[i] = 1 for i in map(int, stdin.readline().split()): if sleep[i]: continue for j in range(i, n + 3, i): if not sleep[j]: check[j] = 1 pre = [check[0]] for i in range(1, n + 3): pre.append(pre[-1] + check[i]) for _ in range(m): s, e = map(int, stdin.readline().split()) print(e - s + 1 - pre[e] - pre[s - 1])
π μμ λ° μ€νκ²°κ³Ό
μμ
50 4 5 1 24 15 27 43 3 4 6 20 25 3 52
μ€νκ²°κ³Ό
25
β¨οΈ λ¬Έμ νμ΄
- μλ μΈμμ λ¨Όμ sleep 리μ€νΈμ νμν΄μ€λ€.
κ·Έ ν, ν΄λΉ ꡬκ°μ λν΄ μΆμ체ν¬λ₯Ό μ μμ μΌλ‘ ν μΈμμ λν΄μ ꡬκ°ν©μ ꡬν΄μ€λ€.
- λ¬Έμ μμ μꡬνλ ꡬκ°μ λν΄μ ꡬκ°μ ν©μ ꡬν΄μ μΆλ ₯νλ€.
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 1238 νν° with Python (0) 2022.06.07 [λ°±μ€] 1057 ν λλ¨ΌνΈ with Python (0) 2022.06.05 [λ°±μ€] 20166 λ¬Έμμ΄ μ§μ₯μ λΉ μ§ νΈμ with Python (0) 2022.06.04 [λ°±μ€] 17485 μ§μ°μ λ¬ μ¬ν (Large) with Python (0) 2022.06.04 [λ°±μ€] 13459 κ΅¬μ¬ νμΆ with Python (0) 2022.06.03