Submission #429461

#TimeUsernameProblemLanguageResultExecution timeMemory
429461abdzagStations (IOI20_stations)C++17
0 / 100
1049 ms656 KiB
#include<bits/stdc++.h> #include<unordered_map> #include<unordered_set> #include "stations.h" #define rep(i,a,b) for(int i=int(a);i<int(b);i++) #define rrep(i,a,b) for(int i=int(a);i>int(b);i--) #define trav(a,v) for(auto& a: v) #define sz(v) v.size() #define all(v) v.begin(),v.end() #define vi vector<int> typedef long long ll; typedef long double ld; typedef unsigned long long ull; const long long inf = 2e9; using namespace std; vector<vector<ll>> children; vector<bool> visited2; vector<ll> in; vector<ll> out; ll counter = 0; void dfs(vector<int>& ans, ll cur, ll depth) { if (visited2[cur])return; visited2[cur] = 1; in[cur] = counter++; trav(a, children[cur]) { dfs(ans, a, depth + 1); } out[cur] = counter++; if (depth % 2 == 0) { ans[cur] = in[cur]; } else ans[cur] = out[cur]; } vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { ll counter = 0; vector<vector<ll>> g(n); rep(i, 0, n - 1) { g[u[i]].push_back(v[i]); g[v[i]].push_back(u[i]); } vector<int> ans(n); children.clear(); visited2.clear(); in.clear(); out.clear(); in.resize(n); out.resize(n); children.resize(n); visited2.resize(n); vector<int> visited(n); queue<ll> q; q.push(0); visited[0] = 1; while (!q.empty()) { ll cur = q.front(); q.pop(); trav(a, g[cur]) { if (!visited[a]) { visited[a] = 1; q.push(a); children[cur].push_back(a); } } } dfs(ans, 0, 0); return ans; } int find_next_station(int s, int t, vector<int> c) { ll last = s; if (c[0] < s) { reverse(all(c)); rep(i, 1, c.size()) { ll curout = last - 1; last = c[i]; if (c[i] < t && t < curout) { return c[i]; } } return c[0]; } if (s == 0) { rep(i, 0, c.size()) { ll curin = last + 1; last = c[i]; if (curin < t && t < c[i]) { return c[i]; } } } rep(i, 1, c.size()) { ll curin = last + 1; last = c[i]; if (curin < t && t < c[i]) { return c[i]; } } return c[0]; }

Compilation message (stderr)

stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:37:5: warning: unused variable 'counter' [-Wunused-variable]
   37 |  ll counter = 0;
      |     ^~~~~~~
#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...