제출 #1270471

#제출 시각아이디문제언어결과실행 시간메모리
1270471algoproclubHiperkocka (COCI21_hiperkocka)C++20
110 / 110
30 ms3656 KiB
// UUID: 4ace28a8-60b4-4020-9807-4f21d9b16e72 #include <bits/stdc++.h> using namespace std; vector<vector<int>>T; vector<bool>vis; vector<int>tree; void dfs(int x, int curr){ vis[x]=true;tree[x]=curr; for(int y:T[x]){ if(!vis[y]){ if(curr&(1<<(y-1))){ dfs(y,curr-(1<<(y-1))); } else{ dfs(y,curr+(1<<(y-1))); } } } } int main() { int n;cin>>n; T.resize(n+1);vis.resize(n+1);tree.resize(n+1); for(int i=1;i<=n;i++){ int u,v;cin>>u>>v; T[u].push_back(v);T[v].push_back(u); } cout<<(1<<(n-1))<<'\n'; for(int i=0;i<1<<n;i++){ if(__builtin_popcount(i)%2==0){ fill(vis.begin(),vis.end(),false); fill(tree.begin(),tree.end(),0); dfs(0,i); for(int j=0;j<=n;j++)cout<<tree[j]<<' '; cout<<'\n'; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...