[python] λ°±μ€ - 2014. μμμ κ³±
π€λ¬Έμ ν΄κ²°
-
G2 | μν, μ°μ μμ ν
DPλ‘ κ΅¬ν΄λ³΄λ €κ³ νμ§λ§ μμ μλμλ€. 2**31 κΈΈμ΄μ λ°°μ΄μ μ’ μλκ±° κ°λ€.
μ΄λ €μμ μκ³ λ¦¬μ¦ λΆλ₯λ₯Ό 보λ μ°μ μμ νλ‘ ν΄κ²°νλ λ¬Έμ μλ€.
μ°μ μμνλ ν μμ μλ κ°λ€ μ€ μ΅μ κ°μ λ°νν μ μλ€.
νμ΄μ¬μμλ ννλ₯Ό λΆλ¬μμ μ¬μ©νκ³ ννλ μ΅μν κΈ°λ°μΌλ‘ λμ΄μλ€.
ν΄κ²°λ°©λ²μ
- μ΅μ΄ ννμ μ£Όμ΄μ§ μμλ₯Ό λ£λλ€.
- ννμμ μ«μλ₯Ό νλμ© κΊΌλ΄λ©΄μ μ£Όμ΄μ§ μμλ€μ κ³±ν΄μ ννμ λ£λλ€.
- (μ΄ λ κΊΌλ΄λ νμκ° μμμ κ³±λ€ μ€μμ Nλ²μ§Έ μμ΄λ€)
- νμ§λ§ μ΄λ κ² λλ©΄ μ€λ³΅μ΄ λ°μνλ€. ( 2*3 μ΄λ 3*2 )
- 3*2λ λμ§λ§ 2*3μ μλλ€λ μμΌλ‘ ννμμ κΊΌλΈ μκ° μμλ‘ λλμ΄ λ¨μ΄μ§λ©΄ κ·Έ λ€μ μμλ 건λλ΄λ€.
- κ²°κ³Όλ μλμ κ°λ€
π»μμ€ μ½λ
import heapq
if __name__ == '__main__':
K, N = map(int, input().split())
prime = list(map(int, input().split()))
pq = [] # κ³±ν κ°μ΄ λ€μ΄κ° 리μ€νΈ (μ°μ μμ ν)
for num in prime:
heapq.heappush(pq, num)
for i in range(N): # νμμ Nλ² λΉΌλ©΄ κ·Έ κ°μ΄ Nλ²μ§Έ κ°μ΄λ€. (μ°μ μμ ν)
num = heapq.heappop(pq)
for j in range(K): # λΊΈ κ°μ μμλ₯Ό κ³±ν΄μ μλ‘μ΄ κ°μ λ§λ λ€.
new_num = num * prime[j]
heapq.heappush(pq, new_num)
if num % prime[j] == 0: # 2 X 3μ λμ§λ§ 3 X 2λ μλλ λλμΌλ‘ μ€λ³΅μ κ±°
break
else:
print(num)
πλ¬Έμ νμΈ
μΆμ²: BACKJOON ONLINE JUDGE
λ§ν¬: https://www.acmicpc.net/problem/2014
2014λ²: μμμ κ³±
첫째 μ€μ K(1 ≤ K ≤ 100), N(1 ≤ N ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. λ€μ μ€μλ Kκ°μ μμκ° μ€λ¦μ°¨μμΌλ‘ μ£Όμ΄μ§λ€. κ°μ μμκ° μ¬λ¬ λ² μ£Όμ΄μ§λ κ²½μ°λ μμΌλ©°, μ£Όμ΄μ§λ μμλ λͺ¨λ 541λ³΄λ€ μκ±°λ
www.acmicpc.net