Use this to learn the idea, then write your own version.
1package main2 3import (4 "bufio"5 . "fmt"6 "io"7)8 910func CF732F(_r io.Reader, _w io.Writer) {11 in := bufio.NewReader(_r)12 out := bufio.NewWriter(_w)13 defer out.Flush()14 min := func(a, b int) int {15 if a > b {16 return b17 }18 return a19 }20 21 var n, m, v, w int22 Fscan(in, &n, &m)23 type nb struct{ to, eid int }24 g := make([][]nb, n)25 type edge struct{ v, w int }26 es := make([]edge, m)27 for i := range es {28 Fscan(in, &v, &w)29 v--30 w--31 g[v] = append(g[v], nb{w, i})32 g[w] = append(g[w], nb{v, i})33 es[i] = edge{v, w}34 }35 36 isBridge := make([]bool, m)37 dfn := make([]int, n)38 ts := 039 var f func(int, int) int40 f = func(v, fa int) int {41 ts++42 dfn[v] = ts43 lowV := ts44 for _, e := range g[v] {45 if w := e.to; dfn[w] == 0 {46 lowW := f(w, v)47 if lowW > dfn[v] {48 isBridge[e.eid] = true49 }50 lowV = min(lowV, lowW)51 } else if w != fa {52 lowV = min(lowV, dfn[w])53 }54 }55 return lowV56 }57 for v, ts := range dfn {58 if ts == 0 {59 f(v, -1)60 }61 }62 63 bccIDs := make([]int, n)64 idCnt := 065 vs := []int{}66 vis := make([]bool, m)67 var f2 func(int)68 f2 = func(v int) {69 bccIDs[v] = idCnt70 vs = append(vs, v)71 for _, e := range g[v] {72 if w, i := e.to, e.eid; !isBridge[i] {73 if !vis[i] { 74 vis[i] = true75 es[i] = edge{v, w} 76 }77 if bccIDs[w] == 0 {78 f2(w)79 }80 }81 }82 }83 rt, maxBCC := 0, 084 for v, id := range bccIDs {85 if id == 0 {86 idCnt++87 vs = []int{}88 f2(v)89 if len(vs) > maxBCC {90 rt, maxBCC = idCnt, len(vs)91 }92 }93 }94 95 g2 := make([][]nb, idCnt)96 for i, b := range isBridge {97 if b {98 v, w := bccIDs[es[i].v]-1, bccIDs[es[i].w]-199 g2[v] = append(g2[v], nb{w, i})100 g2[w] = append(g2[w], nb{v, i})101 }102 }103 var f3 func(v, fa int)104 f3 = func(v, fa int) {105 for _, e2 := range g2[v] {106 if w, i := e2.to, e2.eid; w != fa {107 if e := es[i]; bccIDs[e.w]-1 == w { 108 es[i] = edge{e.w, e.v} 109 }110 f3(w, v)111 }112 }113 }114 f3(rt-1, -1)115 Fprintln(out, maxBCC)116 for _, e := range es {117 Fprintln(out, e.v+1, e.w+1)118 }119}120 121122