Submission #594002

#TimeUsernameProblemLanguageResultExecution timeMemory
594002AlperenTSimurgh (IOI17_simurgh)C++17
13 / 100
3038 ms340 KiB
#include <bits/stdc++.h> #include "simurgh.h" using namespace std; const int N = 7; struct DSU{ int par[N], setsize[N], setcnt; void reset(int n){ for(int i = 0; i < n; i++) par[i] = i, setsize[i] = 1; setcnt = n; } int setfind(int a){ if(par[a] == a) return a; else return par[a] = setfind(par[a]); } void setunion(int a, int b){ a = setfind(a), b = setfind(b); if(a != b){ if(setsize[b] > setsize[a]) swap(a, b); par[b] = par[a]; setsize[a] += setsize[b]; setcnt--; } } }; DSU dsu; vector<int> find_roads(int n, vector<int> u, vector<int> v) { int m = u.size(); for(int msk = 0; msk < (1 << m); msk++){ if(__builtin_popcount(msk) == n - 1){ dsu.reset(n); vector<int> vec; for(int i = 0; i < m; i++){ if(msk & (1 << i)){ vec.push_back(i); dsu.setunion(u[i], v[i]); } } if(dsu.setcnt == 1){ if(count_common_roads(vec) == n - 1) return vec; } } } }

Compilation message (stderr)

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