제출 #430141

#제출 시각아이디문제언어결과실행 시간메모리
430141alireza_kavianiStations (IOI20_stations)C++17
0 / 100
1000 ms644 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 1010; int timer , ans[MAXN]; vector<int> adj[MAXN]; void DFS(int v , int p = -1 , int h = 0){ if(h % 2 == 0) ans[v] = timer++; for(int u : adj[v]){ if(u == p) continue; DFS(u , v , h + 1); } if(h % 2 == 1) ans[v] = timer++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<int> labels(n , 0); timer = 0; for (int i = 0; i < n; i++) { adj[i].clear(); ans[i] = 0; } for(int i = 0 ; i < n - 1 ; i++){ adj[v[i]].push_back(u[i]); adj[u[i]].push_back(v[i]); } DFS(0); for(int i = 0 ; i < n ; i++) labels[i] = ans[i]; return labels; } int SolveSt(int s , int t , vector<int> c){ int prv = s; for(int u : c){ if(prv < t && t <= u) return u; prv = u; } return c.back(); } int SolveFn(int s , int t , vector<int> c){ int prv = s; reverse(c.begin() , c.end()); for(int u : c){ if(u <= t && u < prv) return u; prv = u; } return c.back(); } int find_next_station(int s, int t, vector<int> c) { if(s < c[0]) return SolveSt(s , t , c); if(s > c[0]) return SolveFn(s , t , c); }

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

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