Submission #1312479

#TimeUsernameProblemLanguageResultExecution timeMemory
1312479kawhietThousands Islands (IOI22_islands)C++20
0 / 100
1 ms572 KiB
#include <bits/stdc++.h>
#include "islands.h"
using namespace std;

vector<bool> vis;
vector<int> from;
vector<vector<int>> g;

bool found = 0;
int l, r;

void dfs(int u) {
  vis[u] = 1;
  for (auto v : g[u]) {
    if (vis[v]) {
      found = 1;
      l = u; r = v;
      return;
    }
    from[v] = u;
    dfs(v);
    if (found) return;
  }
}

variant<bool, vector<int>> find_journey(int n, int m, vector<int> _u, vector<int> _v) {
  g.resize(n);
  vis.resize(n);
  from.resize(n);
  for (int i = 0; i < m; i++) {
    int u = _u[i], v = _v[i];
    g[u].push_back(v);
    g[v].push_back(u);
  }
  for (int i = 0; i < n; i++) {
    if (!vis[i]) {
      from[i] = -1;
      dfs(i);
    }
  }
  if (!found) {
    return false;
  }
  return {};
}
#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...