Submission #1311280

#TimeUsernameProblemLanguageResultExecution timeMemory
1311280mo_aladailiStations (IOI20_stations)C++20
0 / 100
398 ms492 KiB
#include "bits/stdc++.h"
using namespace std;
vector<int> label(int n, int k, vector<int> u, vector<int> v)
{
   vector<vector<int>> adj(n);
   for (int i = 0; i < (int)u.size(); i++)
   {
      adj[u[i]].push_back(v[i]);
      adj[v[i]].push_back(u[i]);
   }
   int root = -1;
   for (int i = 0; i < n; i++)
   {
      if (adj[i].size() > 2)
      {
         root = i;
         break;
      }
   }
   if (root == -1)
   {
      root = 0;
   }
   vector<int> lab(n, -1);
   lab[root] = 0;
   int cnt = 1;
   for (int nei : adj[root])
   {
      lab[nei] = cnt++;
   }
   for (int nei : adj[root])
   {
      int base = lab[nei];
      vector<tuple<int, int, int>> st;
      st.emplace_back(nei, root, 1);
      while (!st.empty())
      {
         auto cur = st.back();
         st.pop_back();
         int node = get<0>(cur);
         int par = get<1>(cur);
         int dist = get<2>(cur);
         for (int child : adj[node])
         {
            if (child == par)
               continue;
            lab[child] = dist * 1000 + base;
            st.emplace_back(child, node, dist + 1);
         }
      }
   }
   return lab;
}

int find_next_station(int s, int t, vector<int> c)
{
   for (int x : c)
   {
      if (x == t)
         return x;
   }
   int best = -1;
   for (int x : c)
   {
      if (x <= t && (x == 0 || x % 1000 == t % 1000))
      {
         if (best == -1 || x > best)
            best = x;
      }
   }
   if (best != -1)
      return best;
}

Compilation message (stderr)

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