import
java.util.*;
public
class
chromaticIndex {
public
void
edgeColoring(
int
[][] edges,
int
e)
{
int
i =
0
, color =
1
;
while
(i < e) {
edges[i][
2
] = color;
boolean
flag =
false
;
for
(
int
j =
0
; j < e; j++) {
if
(j == i)
continue
;
if
((edges[i][
0
] == edges[j][
0
])
|| (edges[i][
1
] == edges[j][
0
])
|| (edges[i][
0
] == edges[j][
1
])
|| (edges[i][
1
] == edges[j][
1
])) {
if
(edges[i][
2
] == edges[j][
2
]) {
color++;
flag =
true
;
break
;
}
}
}
if
(flag ==
true
) {
continue
;
}
color =
1
;
i++;
}
int
maxColor = -
1
;
for
(i =
0
; i < e; i++) {
maxColor = Math.max(maxColor, edges[i][
2
]);
}
System.out.println(
"Chromatic Index = "
+ maxColor);
for
(i =
0
; i < e; i++)
{
System.out.println(
"Edge from "
+ edges[i][
0
]
+
" to "
+ edges[i][
1
]
+
" : Color "
+ edges[i][
2
]);
}
}
public
static
void
main(String[] args)
{
int
e =
5
;
int
[][] edges =
new
int
[e][
3
];
for
(
int
i =
0
; i < e; i++) {
edges[i][
2
] = -
1
;
}
edges[
0
][
0
] =
1
;
edges[
0
][
1
] =
2
;
edges[
1
][
0
] =
2
;
edges[
1
][
1
] =
3
;
edges[
2
][
0
] =
3
;
edges[
2
][
1
] =
4
;
edges[
3
][
0
] =
4
;
edges[
3
][
1
] =
1
;
edges[
4
][
0
] =
1
;
edges[
4
][
1
] =
3
;
chromaticIndex c =
new
chromaticIndex();
c.edgeColoring(edges, e);
}
}