Submission #1067135

#TimeUsernameProblemLanguageResultExecution timeMemory
1067135j_vdd16Thousands Islands (IOI22_islands)C++17
5 / 100
21 ms6096 KiB
#include "islands.h" #include <variant> #include <algorithm> #include <bitset> #include <cstdint> #include <cstring> #include <iostream> #include <limits.h> #include <math.h> #include <map> #include <numeric> #include <queue> #include <set> #include <stack> #include <string> #include <vector> //#define int long long #define loop(X, N) for(int X = 0; X < (N); X++) #define all(V) V.begin(), V.end() #define rall(V) V.rbegin(), V.rend() using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> ii; typedef vector<ii> vii; typedef vector<vector<ii>> vvii; typedef vector<bool> vb; typedef vector<vector<bool>> vvb; typedef uint64_t u64; typedef int64_t i64; int n, m; vvi adj1;//adj2; vb vis; vi depths; int counter = 0; vii inOut; void dfs(int node, int d) { if (vis[node]) { return; } vis[node] = true; depths[node] = d; inOut[node].first = counter++; for (int child : adj1[node]) { dfs(node, d + 1); } inOut[node].second = counter++; } bool isAncestor(int a, int b) { return inOut[a].first <= inOut[b].first && inOut[b].first <= inOut[a].second; } bool success = false; // bool isPossible(int node) { // if (vis[node]) { // return {node, false}; // } // vis[node] = true; // int closestBack = node; // int cycleCount = 0; // for (int child : adj1[node]) { // auto [res, pos] = isPossible(child); // if (isAncestor(node, res)) { // cycleCount++; // } // if (isAncestor(node, res) && depths[closestBack] < depths[res]) { // closestBack = res; // } // } // if (cycleCount >= 2) { // success = true; // } // return {closestBack, }; // } vvii adj; std::variant<bool, std::vector<int>> find_journey(int N, int M, vi U, vi V) { n = N; m = M; adj = vvii(n); loop(i, m) { adj[U[i]].push_back({V[i], i}); } if (n == 2) { if (adj[0].size() < 2 || adj[1].size() < 1) { return false; } return vi{ adj[0][0].second, adj[1][0].second, adj[0][1].second, adj[0][0].second, adj[1][0].second, adj[0][1].second }; } return false; // vis = vb(n); // depths = vi(n); // counter = 0; // inOut = vii(n); // dfs(0, 0); // vis = vb(n); // marked = vi(n); // success = false; // isPossible(0); // return success; }

Compilation message (stderr)

islands.cpp: In function 'void dfs(int, int)':
islands.cpp:54:14: warning: unused variable 'child' [-Wunused-variable]
   54 |     for (int child : adj1[node]) {
      |              ^~~~~
#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...