Submission #521

#TimeUsernameProblemLanguageResultExecution timeMemory
521tncks0121지도 색칠하기 (GA3_map)C++98
120 / 120
997 ms920 KiB
typedef long long ll; #include<stdio.h> int n,m; int edge[25][25]; int en[25]; int c[25]; int dfs(int a,int b,int graph){ int i,j; c[a]=b; for(i=0;i<en[a];i++){ if((graph>>edge[a][i])&1){ if(c[edge[a][i]]==0){ j=dfs(edge[a][i],3-b,graph); if(j==0)return 0; } if(c[edge[a][i]]==b)return 0; } } return 1; } long long int color(int a){ int b,i,j,k; long long int r=1; for(i=0;i<n;i++){ c[i]=0; } for(i=0;i<n;i++){ if((a>>i)&1){ if(c[i]==0){ j=dfs(i,1,a); if(j==0)return 0; else r*=2; } } } return r; } long long NumberOfMaps (int N, int M, int *A, int *B){ int i,a,b; long long int ans; n=N; m=M; for(i=0;i<m;i++){ a=A[i]; b=B[i]; a--; b--; edge[a][en[a]]=b; edge[b][en[b]]=a; en[a]++; en[b]++; } ans=0; for(i=0;i<(1<<(n-1));i++){ ans+=color(i)*color((1<<n)-i-1); } ans*=2; return ans; }
#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...