Submission #1034654

#TimeUsernameProblemLanguageResultExecution timeMemory
1034654Mr_HusanboyThousands Islands (IOI22_islands)C++17
0 / 100
1125 ms935960 KiB
#include "islands.h" #include <variant> #include <bits/stdc++.h> using namespace std; #define ff first #define ss second #define all(a) (a).begin(), (a).end() #define ll long long const int mod = 1000002022; vector<int> state, p; int n, m; vector<vector<int>> g; template<typename T> int len(T &a){return a.size();} mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count()); variant<bool, vector<int>> find_journey( int n, int m, std::vector<int> u, std::vector<int> v) { vector<vector<int>> g(n); for(int i = 0; i < m; i ++) g[u[i]].push_back(i); if(len(g[0]) == 0) return false; vector<int> ans; vector<int> vis(n); vector<int> cyc; vector<int> par(n); auto dfs = [&](auto &dfs, int i)->bool{ vis[i] = 1; int r = 0; for(auto j : g[i]){ if(j % 2) continue; int x = v[j]; par[x] = j; if(vis[x] == 2) continue; if(vis[x] == 1){ cyc.push_back(j); int cur = i; while(cur != x){ cyc.push_back(par[cur]); cur = u[par[cur]]; } return true; } if(dfs(dfs, x)){ return true; } } vis[i] = 2; return false; }; if(!dfs(dfs, 0)){ return false; } int j = v[cyc[0]]; while(j != 0){ ans.push_back(par[j]); j = u[par[j]]; } reverse(all(ans)); reverse(all(cyc)); vector<int> res; for(auto i : ans) res.push_back(i); for(auto i : cyc) res.push_back(i); for(auto i : cyc) res.push_back(i ^ 1); reverse(all(cyc)); for(auto i : cyc) res.push_back(i); for(auto i : cyc) res.push_back(i ^ 1); reverse(all(ans)); for(auto i : ans) res.push_back(i ^ 1); return res; }

Compilation message (stderr)

islands.cpp: In instantiation of 'find_journey(int, int, std::vector<int>, std::vector<int>)::<lambda(auto:23&, int)> [with auto:23 = find_journey(int, int, std::vector<int>, std::vector<int>)::<lambda(auto:23&, int)>]':
islands.cpp:58:10:   required from here
islands.cpp:35:9: warning: unused variable 'r' [-Wunused-variable]
   35 |     int r = 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...