Skip to content

Commit d0909dc

Browse files
authored
Create m-coloring-problem.py
1 parent 16b6d78 commit d0909dc

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

backtracking/m-coloring-problem.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
def isSafe(node, color, graph, n, col):
2+
for k in range(n):
3+
if graph[node][k] == 1 and col[k] == color:
4+
return False
5+
return True
6+
7+
def solve(node, col, m, n, graph):
8+
if node == n:
9+
return True
10+
for c in range(1, m + 1):
11+
if isSafe(node, c, graph, n, col):
12+
col[node] = c
13+
if solve(node + 1, col, m, n, graph):
14+
return True
15+
col[node] = 0
16+
return False
17+
18+
def graphColoring(graph, m, n):
19+
col = [0] * n
20+
if solve(0, col, m, n, graph):
21+
return True
22+
return False
23+
24+
if __name__ == "__main__":
25+
V = int(input())
26+
E = int(input())
27+
graph = [[0 for _ in range(V)] for _ in range(V)]
28+
for _ in range(E):
29+
u, v = map(int, input().split())
30+
graph[u][v] = 1
31+
graph[v][u] = 1
32+
m = int(input())
33+
if graphColoring(graph, m, V):
34+
print("True")
35+
else:
36+
print("False")

0 commit comments

Comments
 (0)