제출 #1080349

#제출 시각아이디문제언어결과실행 시간메모리
1080349Jawad_Akbar_JJ기지국 (IOI20_stations)C++17
0 / 100
3100 ms2097152 KiB
#include <iostream> #include <vector> using namespace std; const int N1 = 1005; vector<int> nei[N1]; int d[N1], num[N1], c; bool seen[N1]; void dfs1(int u, int p = -1){ num[u] = c++; for (int i : nei[u]) if (i != p) dfs1(i, u); } vector<int> label(int n, int k, vector<int> u, vector<int> v){ for (int i=0;i<n-1;i++){ nei[u[i]].push_back(v[i]); nei[v[i]].push_back(u[i]); d[u[i]]++; d[v[i]]++; } vector<int> lab(n, 0); int mx = 0; for (int i=0;i<n;i++) if (d[i] > d[mx]) mx = i; int cr = 0; if (d[mx] > 2){ for (int i : nei[mx]) c = cr * 1000, cr++, dfs1(i, mx); num[mx] = 1e6; for (int i=0;i<n;i++) lab[i] = num[i]; return lab; } return lab; } int find_next_station(int s, int t, vector<int> lab){ if (lab.size() == 1) return lab[0]; if (lab[0] == t or lab[1] == t) return t; if (s == 1e6){ int lst = lab[0]; for (int i : lab){ if (i > t) return lst; lst = i; } return lst; } if (t == 1e6){ return lab[0]; } if (s / 1000 != t / 1000){ if (lab[1] == 1e6) return lab[1]; return lab[0]; } if (lab.size() == 2){ if (abs(lab[0] - t) < abs(lab[1] - t)) return lab[0]; return lab[1]; } }

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

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:75:1: warning: control reaches end of non-void function [-Wreturn-type]
   75 | }
      | ^
#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...