제출 #1273656

#제출 시각아이디문제언어결과실행 시간메모리
1273656vtnoo사이버랜드 (APIO23_cyberland)C++20
0 / 100
19 ms7472 KiB
#include "cyberland.h" #include <bits/stdc++.h> using namespace std; const int MAXN=100000; vector<vector<pair<int,double>>> adj; bool alc[MAXN], vis[MAXN]; void dfs(int u, const int& ban){ alc[u]=true; for(auto [v,t]:adj[u]){ if(v==ban)continue; if(!alc[v]){ dfs(v, ban); } } } double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { memset(alc, 0, sizeof(alc)); memset(vis, 0, sizeof(vis)); adj.clear(); adj.resize(N); for(int i=0;i<M;i++){ adj[x[i]].push_back({y[i], c[i]}); adj[y[i]].push_back({x[i], c[i]}); } dfs(0,H); set<pair<double,int>> q; q.insert({0,H}); memset(vis, 0, sizeof(vis)); vector<double> dist(N, 1e18); while(!q.empty()){ auto [d,u]=*q.begin(); q.erase(q.begin()); vis[u]=true; if(arr[u]==0){ return d; break; } for(auto [v,t]:adj[u]){ if(alc[v]&&!vis[v]){ if(arr[v]==2&&K){ q.insert({(d+t)/2,v}); K--; }else q.insert({d+t, v}); } } } }

컴파일 시 표준 에러 (stderr) 메시지

cyberland.cpp: In function 'double solve(int, int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
cyberland.cpp:51:1: warning: control reaches end of non-void function [-Wreturn-type]
   51 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...