From eaaa5179dc147dd7cfe848385aa12b4207c96b74 Mon Sep 17 00:00:00 2001 From: oncsr Date: Wed, 8 Oct 2025 23:48:17 +0900 Subject: [PATCH] =?UTF-8?q?[20251008]=20BOJ=20/=20P5=20/=20=EC=A0=84?= =?UTF-8?q?=ED=88=AC=EA=B8=B0=20=EC=B6=9C=EA=B2=A9=20/=20=EA=B6=8C?= =?UTF-8?q?=ED=98=81=EC=A4=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\352\270\260 \354\266\234\352\262\251.md" | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 "khj20006/202510/08 BOJ P5 \354\240\204\355\210\254\352\270\260 \354\266\234\352\262\251.md" diff --git "a/khj20006/202510/08 BOJ P5 \354\240\204\355\210\254\352\270\260 \354\266\234\352\262\251.md" "b/khj20006/202510/08 BOJ P5 \354\240\204\355\210\254\352\270\260 \354\266\234\352\262\251.md" new file mode 100644 index 00000000..0cc98d0a --- /dev/null +++ "b/khj20006/202510/08 BOJ P5 \354\240\204\355\210\254\352\270\260 \354\266\234\352\262\251.md" @@ -0,0 +1,43 @@ +```cpp +#include +using namespace std; +using ll = long long; + +ll N, M, R, d[101][101]{}, e[101]{}, v[100001]{}, s[100001]{}; + +int main(){ + cin.tie(0)->sync_with_stdio(0); + + cin>>N>>M>>R; + for(int i=1;i<=M;i++) for(int j=1;j<=M;j++) cin>>d[i][j]; + for(int i=1;i<=M;i++) for(int j=1;j<=M;j++) for(int k=1;k<=M;k++) d[j][k] = min(d[j][k], d[j][i] + d[i][k]); + + for(int i=1;i<=M;i++) cin>>e[i]; + + for(int p=1,i=1;i<=N;i++) { + cin>>v[i]; + s[i] = s[i-1] + d[p][v[i]]; + p = v[i]; + } + + ll mn = 1e18, ans = 1e18; + for(int i=1;i<=N;i++) { + int l = i, r = N, m = (l+r)>>1; + ll f = s[i] + e[v[i]]; + while(l>1; + } + ll cnt = m-i, res = f; + if(m < N) res += d[v[i]][v[m+1]] + s[N]-s[m+1]; + if(res > R) continue; + if(cnt < mn || (cnt == mn && res < ans)) mn = cnt, ans = res; + } + if(mn == 1e18) cout<<-1; + else cout<