Submission #305285

#TimeUsernameProblemLanguageResultExecution timeMemory
305285abekerStations (IOI20_stations)C++17
0 / 100
958 ms1024 KiB
#include <bits/stdc++.h> #include "stations.h" using namespace std; typedef pair <int, int> pii; vector <int> label(int N, int K, vector <int> u, vector <int> v) { vector <vector <int>> adj(N); for (int i = 0; i < N - 1; i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } int timer = 0; vector <pii> sorted; vector <int> labels(N); function <void(int, int, int)> dfs = [&](int x, int p, int d) { int disc = timer++; for (auto it : adj[x]) if (it != p) dfs(it, x, d ^ 1); int fin = timer++; sorted.push_back({d ? fin : disc, x}); }; dfs(0, -1, 0); sort(sorted.begin(), sorted.end()); for (int i = 0; i < N; i++) labels[sorted[i].second] = i; return labels; } int find_next_station(int start, int dest, vector <int> neigh) { int parent = -1; sort(neigh.begin(), neigh.end()); if (start && start < neigh[0]) { parent = neigh.back(); neigh.insert(neigh.begin(), start); neigh.pop_back(); } else if (start > neigh.back()) { parent = neigh[0]; neigh.erase(neigh.begin()); neigh.push_back(start); } for (int i = 1; i < neigh.size(); i++) if (dest >= neigh[i - 1] && dest < neigh[i]) return neigh[i - 1]; return parent; }

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:44:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |   for (int i = 1; i < neigh.size(); i++)
      |                   ~~^~~~~~~~~~~~~~
#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...