Submission #17307

#TimeUsernameProblemLanguageResultExecution timeMemory
17307gs14004지도 색칠하기 (GA3_map)C++14
120 / 120
1114 ms1084 KiB
#include <algorithm> using namespace std; bool adj[20][20]; int col[20]; int bits, n; bool bad; void dfs(int x, int p){ if(col[x]){ bad |= (col[x] != p); return; } col[x] = p; for(int i=0; i<n; i++){ if(adj[x][i] && (bits >> i) % 2 == (bits >> x) % 2){ dfs(i, 3-p); } } } long long NumberOfMaps (int N, int M, int *A, int *B){ n = N; for(int i=0; i<M; i++){ adj[A[i]-1][B[i]-1] = 1; adj[B[i]-1][A[i]-1] = 1; } long long sum = 0; for(int i=0; i<(1<<(N-1)); i++){ fill(col, col + N, 0); bits = i; bad = 0; int cnt = 0; for(int i=0; i<N; i++){ if(col[i]) continue; dfs(i, 1); if(bad) break; cnt++; } if(bad) continue; sum += (2 << cnt); } return sum; }
#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...