From d8ee862c205990330afc344135edadecf62f2905 Mon Sep 17 00:00:00 2001 From: oncsr Date: Fri, 14 Nov 2025 23:49:47 +0900 Subject: [PATCH] =?UTF-8?q?[20251114]=20BOJ=20/=20P4=20/=20=EA=B5=AC?= =?UTF-8?q?=EC=8A=AC=20=EB=B0=9C=EC=82=AC=EA=B8=B0=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 \353\260\234\354\202\254\352\270\260.md" | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 "khj20006/202511/14 BOJ P4 \352\265\254\354\212\254 \353\260\234\354\202\254\352\270\260.md" diff --git "a/khj20006/202511/14 BOJ P4 \352\265\254\354\212\254 \353\260\234\354\202\254\352\270\260.md" "b/khj20006/202511/14 BOJ P4 \352\265\254\354\212\254 \353\260\234\354\202\254\352\270\260.md" new file mode 100644 index 00000000..9310d8c5 --- /dev/null +++ "b/khj20006/202511/14 BOJ P4 \352\265\254\354\212\254 \353\260\234\354\202\254\352\270\260.md" @@ -0,0 +1,105 @@ +```cpp +#include +using namespace std; +using ll = long long; + +const ll INF = 1e18; +int N, S, E; +map>> mp[8]{}; +vector>> v(100001); +vector dist(100001, INF); +int par[100001]{}; + +int main() { + cin.tie(0)->sync_with_stdio(0); + + cin>>N>>S>>E; + for(int i=1;i<=N;i++) { + int x,y,c; + string d; + cin>>x>>y>>c>>d; + + int dir = -1; + if(d == "N") dir = 0; + if(d == "NE") dir = 1; + if(d == "E") dir = 2; + if(d == "SE") dir = 3; + if(d == "S") dir = 4; + if(d == "SW") dir = 5; + if(d == "W") dir = 6; + if(d == "NW") dir = 7; + + int cost = 0; + for(int j=dir;j()); + + for(int j=1;j, vector>, greater<>> q; + q.emplace(0,S); + while(!q.empty()) { + auto [d,n] = q.top(); q.pop(); + if(d > dist[n]) continue; + if(n == E) { + cout< st; + while(n) { + st.push(n); + n = par[n]; + } + while(!st.empty()) { + cout< d+c) { + dist[i] = d+c; + par[i] = n; + q.emplace(dist[i], i); + } + } + cout<<-1; + +} +```