Submission #1311336

#TimeUsernameProblemLanguageResultExecution timeMemory
1311336mo_aladailiStations (IOI20_stations)C++20
0 / 100
388 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 < n - 1; i++)
   {
      adj[u[i]].push_back(v[i]);
      adj[v[i]].push_back(u[i]);
   }
   int root = 0;
   for (int i = 0; i < n; i++)
   {
      if (adj[i].size() > 2)
      {
         root = i;
         break;
      }
   }
   vector<int> lab(n, -1);
   lab[root] = 0;
   int nxt = 1;
   for (int nei : adj[root])
   {
      lab[nei] = nxt++;
   }
   for (int st : adj[root])
   {
      int base = lab[st];
      queue<pair<int, int>> q;
      q.push({st, 1});
      while (!q.empty())
      {
         auto [node, dist] = q.front();
         q.pop();
         for (int child : adj[node])
         {
            if (lab[child] != -1)
               continue;
            lab[child] = dist * 1000 + base;
            q.push({child, dist + 1});
         }
      }
   }
   return lab;
}

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

Compilation message (stderr)

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