제출 #319156

#제출 시각아이디문제언어결과실행 시간메모리
319156alextodoranStations (IOI20_stations)C++17
0 / 100
3060 ms2097156 KiB
/** ____ ____ ____ ____ ____ ||a |||t |||o |||d |||o || ||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\| **/ #include <bits/stdc++.h> #include "stations.h" using namespace std; const int N_MAX = 1002; vector <int> edges[N_MAX]; int minLabel[N_MAX], maxLabel[N_MAX]; int curr; int depth[N_MAX]; void dfs (int u, int parent = -1) { minLabel[u] = maxLabel[u] = curr++; for(int v : edges[u]) if(v != parent) { depth[v] = depth[u] + 1; dfs(v, u); maxLabel[u] = max(maxLabel[u], maxLabel[v]); } } vector <int> label (int n, int k, vector <int> u, vector <int> v) { for(int i = 1; i < n; i++) { int a = u[i - 1]; int b = v[i - 1]; edges[a].push_back(b); edges[b].push_back(a); } dfs(1); vector <int> labels(n); for(int i = 1; i <= n; i++) if(depth[i] & 1) labels[i - 1] = minLabel[i]; else labels[i - 1] = maxLabel[i]; return labels; } int find_next_station (int s, int t, vector <int> c) { bool odd = true; for(int u : c) odd &= (u < s); int minL, maxL; if(odd == true) { minL = s; sort(c.begin(), c.end()); if((int)c.size() == 1) maxL = minL; else maxL = c.end()[-2]; if(minL <= t && t <= maxL) { for(int u : c) if(t <= u) return u; } else return c.back(); } else { maxL = s; sort(c.begin(), c.end()); reverse(c.begin(), c.end()); if((int)c.size() == 1) minL = maxL; else minL = c.end()[-2] - 1; if(minL <= t && t <= maxL) { for(int u : c) if(u <= t) return u; } else return c.back(); } }

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

stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:47:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   47 |     for(int i = 1; i <= n; i++)
      |     ^~~
stations.cpp:52:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   52 |  return labels;
      |  ^~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:96:1: warning: control reaches end of non-void function [-Wreturn-type]
   96 | }
      | ^
#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...