<script>
function
addEdge( a , b)
{
adj[a].push(b);
adj[b].push(a);
}
function
getWeight( parent , a, visited) {
let weight = vertex_weight[a];
visited[a] = 1;
for
(let i = 0; i < adj[a].length; i++) {
if
(visited[adj[a][i]] == 0 && adj[a][i] != parent ) {
weight = weight + getWeight( a , adj[a][i], visited);
}
}
return
weight;
}
let vertex_weight = [ 4, 2, 1, 6, 3, 5, 2 ];
let edges = [ [ 0, 1 ], [ 0, 2 ], [ 0, 3 ], [ 2, 4 ], [ 2, 5 ], [ 3, 6 ] ];
let adj =
new
Array(vertex_weight.length);
for
(let i=0;i<adj.length;i++)
{
adj[i] = [];
}
for
(let i=0;i<edges.length;i++)
{
addEdge( edges[i][0] , edges[i][1] );
}
let total_weight = 0;
for
(let i=0;i<vertex_weight.length;i++)
{
total_weight = total_weight + vertex_weight[i];
}
let min_weight_diff = Number.MAX_SAFE_INTEGER;
let deleted_edge;
for
(let i = 0; i < vertex_weight.length; i++) {
for
(let j = 0; j < adj[i].length; j++) {
let visited =
new
Array(vertex_weight.length).fill(0);
if
(i != j) {
let weight = getWeight( i , adj[i][j], visited);
if
( Math.abs( (total_weight - weight) - weight ) < min_weight_diff) {
min_weight_diff = (total_weight - weight) - weight;
deleted_edge = [i, adj[i][j]];
}
}
}
}
console.log(min_weight_diff);
console.log( deleted_edge ,
'deleted_edge'
);
document.write(min_weight_diff);
</script>