From cb3f00e4ad26211b57d3583a7dabb93bef09d77c Mon Sep 17 00:00:00 2001
From: SSUM <116950962+ssum21@users.noreply.github.com>
Date: Mon, 9 Feb 2026 21:05:52 +0900
Subject: [PATCH] =?UTF-8?q?[Gold=20II]=20Title:=20=EC=88=98=EC=97=B4?=
=?UTF-8?q?=EA=B3=BC=20=EA=B0=9C=EA=B5=AC=EB=A6=AC,=20Time:=201080=20ms,?=
=?UTF-8?q?=20Memory:=20108660=20KB=20-BaekjoonHub?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
백준/Gold/32294. 수열과 개구리/README.md | 44 +++++++++++++++++++
.../Gold/32294. 수열과 개구리/수열과 개구리.py | 41 +++++++++++++++++
2 files changed, 85 insertions(+)
create mode 100644 백준/Gold/32294. 수열과 개구리/README.md
create mode 100644 백준/Gold/32294. 수열과 개구리/수열과 개구리.py
diff --git a/백준/Gold/32294. 수열과 개구리/README.md b/백준/Gold/32294. 수열과 개구리/README.md
new file mode 100644
index 0000000..960527d
--- /dev/null
+++ b/백준/Gold/32294. 수열과 개구리/README.md
@@ -0,0 +1,44 @@
+# [Gold II] 수열과 개구리 - 32294
+
+[문제 링크](https://www.acmicpc.net/problem/32294)
+
+### 성능 요약
+
+메모리: 108660 KB, 시간: 1080 ms
+
+### 분류
+
+그래프 이론, 최단 경로, 데이크스트라
+
+### 제출 일자
+
+2026년 2월 9일 21:05:16
+
+### 문제 설명
+
+
길이가 $n$이고 양의 정수로 구성된 수열 $a$와 $b$가 있습니다. 두 수열의 인덱스는 $1$부터 시작합니다.
+
+이 수열 위에 개구리 한 마리가 있습니다. 개구리는 초기에 어떤 정수 위치 $1 \le x \le n$에서 출발하며, 자신의 위치가 수열 밖$^\dagger$이 될 때까지 다음을 반복합니다.
+
+
+ - $b_x$초 동안 기다린 뒤, 위치 $x-a_x$로 이동하거나 위치 $x+a_x$로 이동합니다. 이때 이동한 위치가 $x$의 새로운 값이 됩니다.
+
+
+개구리가 시작하는 위치 $x$에 대해, 개구리의 위치가 수열 밖이 될 수 있는 최초의 시각을 $f(x)$초라고 정의할 때, 여러분은 $f(1),f(2),\cdots,f(n)$의 값을 모두 구해야 합니다.
+
+ $^\dagger$ 어떤 위치 $x$에 대해서, $1 \le x \le n$이면 수열 안, $x<1$ 또는 $x>n$이면 수열 밖이라고 부릅니다.
+
+### 입력
+
+ 첫 번째 줄에 두 수열의 길이 $n$이 주어집니다. ($1 \le n \le 2 \cdot 10^5$)
+
+두 번째 줄에 $n$개의 정수 $a_1,a_2,\dots,a_n$이 공백으로 구분되어 주어집니다. ($1 \le a_i \le n$)
+
+세 번째 줄에 $n$개의 정수 $b_1,b_2,\dots,b_n$이 공백으로 구분되어 주어집니다. ($1 \le b_i \le 10^6$)
+
+### 출력
+
+ 한 줄에 $f(1),f(2),\cdots,f(n)$의 값을 공백으로 구분하여 순서대로 출력합니다.
+
+문제의 제한에 따라 모든 $1 \le i \le n$에 대해 $f(i)$가 유한함을 증명할 수 있습니다.
+
diff --git a/백준/Gold/32294. 수열과 개구리/수열과 개구리.py b/백준/Gold/32294. 수열과 개구리/수열과 개구리.py
new file mode 100644
index 0000000..1e8154c
--- /dev/null
+++ b/백준/Gold/32294. 수열과 개구리/수열과 개구리.py
@@ -0,0 +1,41 @@
+import sys
+import heapq
+
+input = sys.stdin.readline
+
+n = int(input())
+a = [0] + list(map(int, input().split()))
+b = [0] + list(map(int, input().split()))
+
+rev = [[] for _ in range(n + 1)]
+
+for u in range(1, n + 1):
+ v1 = u - a[u]
+ v2 = u + a[u]
+
+ if 1 <= v1 <= n:
+ rev[v1].append(u)
+ else:
+ rev[0].append(u)
+
+ if 1 <= v2 <= n:
+ rev[v2].append(u)
+ else:
+ rev[0].append(u)
+
+INF = 10**30
+dist = [INF] * (n + 1)
+dist[0] = 0
+
+pq = [(0, 0)]
+while pq:
+ d, v = heapq.heappop(pq)
+ if d != dist[v]:
+ continue
+ for u in rev[v]:
+ nd = d + b[u]
+ if nd < dist[u]:
+ dist[u] = nd
+ heapq.heappush(pq, (nd, u))
+
+sys.stdout.write(" ".join(map(str, dist[1:])) + "\n")