제출 #754461

#제출 시각아이디문제언어결과실행 시간메모리
754461HaciyevAlik사이버랜드 (APIO23_cyberland)C++17
5 / 100
22 ms4068 KiB
#include "cyberland.h" #include <bits/stdc++.h> const int mx=5; std::vector<std::pair<int,int>> g[mx]; int used[mx]; void dfs(int u) { used[u]=1; for(int i=0;i<(int)g[u].size();++i) { std::pair<int,int> v=g[u][i]; if(!used[v.first]) { dfs(v.first); } } } 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) { for(int i=0;i<mx;++i) g[i].clear(); memset(used,0,sizeof(used)); for(int i=0;i<M;++i) { int u=x[i],v=y[i],w=c[i]; g[u].push_back({v,w}); g[v].push_back({u,w}); } double ans1=0,ans2=0; dfs(0); if(!used[H]) return -1; if(H==1) { bool f=0,F=0; for(int i=0;i<(int)g[0].size();++i) { if(g[0][i].first==1) { f=1; ans1+=g[0][i].second; break; } } for(int i=0;i<(int)g[0].size();++i) { if(g[0][i].first==2) { ans2+=g[0][i].second; if(arr[2]==0) { ans2=0; } else if(arr[2]==2) { ans2/=2; } for(int j=0;j<(int)g[2].size();++j) { if(g[2][j].first==1) { F=1; ans2+=g[2][j].second; } } } } if(f&&F) return std::min(ans1,ans2); if(!f&&F) return ans2; if(f&&!F) return ans1; } else { bool f=0,F=0; for(int i=0;i<(int)g[0].size();++i) { if(g[0][i].first==2) { f=1; ans1+=g[0][i].second; break; } } for(int i=0;i<(int)g[0].size();++i) { if(g[0][i].first==1){ ans2+=g[0][i].second; if(arr[1]==0) { ans2=0; } else if(arr[1]==2) { ans2/=2; } for(int j=0;j<(int)g[1].size();++j) { if(g[1][j].first==2){ ans2+=g[1][j].second; F=1; } } } } if(f&&F) return std::min(ans1,ans2); if(!f&&F) return ans2; if(f&&!F) return ans1; } }

컴파일 시 표준 에러 (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:80:1: warning: control reaches end of non-void function [-Wreturn-type]
   80 | }
      | ^
#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...