Language: C++

import std.stdio, std.getopt, std.random, std.range, std.string, std.conv;
import std.algorithm, std.container, std.datetime;

class LowLink {
	int n;
	int[][] g;
	int[] ord, low, root, cmp, used;
	this(int nn) {
		n = nn;
		g.length = ord.length = low.length = used.length = n;
		cmp.length = root.length = n;
	}

	void addEdge(int x, int y) {
		g[x] ~= y;
		g[y] ~= x;
	}

	int k;
	void dfs(int u, int b) {
		used[u] = 1;
		low[u] = ord[u] = k;
		k++;
		foreach (v; g[u]) {
			if (v == b) continue;
			if (!used[v]) {
				dfs(v, u);
				low[u] = min(low[u], low[v]);
			} else {
				low[u] = min(low[u], ord[v]);
			}
		}
	}

	int mc;
	void dfs2(int u, int d) {
		used[u] = 2;
		cmp[u] = d;
		mc = max(mc, d);
		foreach (v; g[u]) {
			if (used[v] == 2) continue;
			if (ord[u] < low[v]) {
				dfs2(v, d+1);
			} else {
				dfs2(v, d);
			}
		}
	}

	void exec() {
		k = mc = 0;
		int c = 0;
		foreach (i; 0..n) {
			if (!used[i]) {
				dfs(i, -1);
				dfs2(i, c);
				c = mc+1;
			}
		}
	}
}

int main() {
	int v, e;
	readf("%d %d\n", &v, &e);
	auto ll = new LowLink(v);
	alias P = Tuple!(int, int);
	P[] g;
	foreach (i; 0..e) {
		int a, b;
		readf("%d %d\n", &a, &b);
		ll.addEdge(a, b);
		g ~= P(a, b);
	}
	ll.exec();
	foreach (p; g) {
		if (ll.cmp[p[0]] != ll.cmp[p[1]]) {
			writeln(p[0], " ", p[1]);
		}
	}
    return 0;
}

Compiler output:
a.cc:53:29: error: too many decimal points in number
   53 |                 foreach (i; 0..n) {
      |                             ^~~~
a.cc:69:21: error: too many decimal points in number
   69 |         foreach (i; 0..e) {
      |                     ^~~~
a.cc:1:1: error: 'import' does not name a type
    1 | import std.stdio, std.getopt, std.random, std.range, std.string, std.conv;
      | ^~~~~~
a.cc:1:1: note: C++20 'import' only available with '-fmodules-ts'
a.cc:2:1: error: 'import' does not name a type
    2 | import std.algorithm, std.container, std.datetime;
      | ^~~~~~
a.cc:2:1: note: C++20 'import' only available with '-fmodules-ts'
a.cc:6:12: error: expected unqualified-id before '[' token
    6 |         int[][] g;
      |            ^
a.cc:7:12: error: expected unqualified-id before '[' token
    7 |         int[] ord, low, root, cmp, used;
      |            ^
a.cc:8:9: error: expected unqualified-id before 'this'
    8 |         this(int nn) {
      |         ^~~~
a.cc:61:2: error: expected ';' after class definition
   61 | }
      |  ^
      |  ;
a.cc: In member function 'void LowLink::addEdge(int, int)':
a.cc:15:17: error: 'g' was not declared in this scope
   15 |                 g[x] ~= y;
      |                 ^
a.cc: In member function 'void LowLink::dfs(int, int)':
a.cc:21:17: error: 'used' was not declared in this scope
   21 |                 used[u] = 1;
      |                 ^~~~
a.cc:22:17: error: 'low' was not declared in this scope
   22 |                 low[u] = ord[u] = k;
      |                 ^~~
a.cc:22:26: error: 'ord' was not declared in this scope
   22 |                 low[u] = ord[u] = k;
      |                          ^~~
a.cc:24:26: error: 'v' was not declared in this scope
   24 |                 foreach (v; g[u]) {
      |                          ^
a.cc:24:29: error: 'g' was not declared in this scope
   24 |                 foreach (v; g[u]) {
      |                             ^
a.cc: In member function 'void LowLink::dfs2(int, int)':
a.cc:37:17: error: 'used' was not declared in this scope
   37 |                 used[u] = 2;
      |                 ^~~~
a.cc:38:17: error: 'cmp' was not declared in this scope
   38 |                 cmp[u] = d;
      |                 ^~~
a.cc:39:22: error: 'max' was not declared in this scope
   39 |                 mc = max(mc, d);
      |                      ^~~
a.cc:40:26: error: 'v' was not declared in this scope
   40 |                 foreach (v; g[u]) {
      |                          ^
a.cc:40:29: error: 'g' was not declared in this scope
   40 |                 foreach (v; g[u]) {
      |                             ^
a.cc: In member function 'void LowLink::exec()':
a.cc:53:26: error: 'i' was not declared in this scope
   53 |                 foreach (i; 0..n) {
      |                          ^
a.cc: In function 'int main()':
a.cc:65:9: error: 'readf' was not declared in this scope
   65 |         readf("%d %d\n", &v, &e);
      |         ^~~~~
a.cc:66:32: error: no matching function for call to 'LowLink::LowLink(int&)'
   66 |         auto ll = new LowLink(v);
      |                                ^
a.cc:4:7: note: candidate: 'LowLink::LowLink()'
    4 | class LowLink {
      |       ^~~~~~~
a.cc:4:7: note:   candidate expects 0 arguments, 1 provided
a.cc:4:7: note: candidate: 'constexpr LowLink::LowLink(const LowLink&)'
a.cc:4:7: note:   no known conversion for argument 1 from 'int' to 'const LowLink&'
a.cc:4:7: note: candidate: 'constexpr LowLink::LowLink(LowLink&&)'
a.cc:4:7: note:   no known conversion for argument 1 from 'int' to 'LowLink&&'
a.cc:67:9: error: 'alias' was not declared in this scope
   67 |         alias P = Tuple!(int, int);
      |         ^~~~~
a.cc:68:9: error: 'P' was not declared in this scope
   68 |         P[] g;
      |         ^
a.cc:68:11: error: expected primary-expression before ']' token
   68 |         P[] g;
      |           ^
a.cc:69:18: error: 'i' was not declared in this scope
   69 |         foreach (i; 0..e) {
      |                  ^
a.cc:76:18: error: 'p' was not declared in this scope
   76 |         foreach (p; g) {
      |                  ^
a.cc:76:21: error: 'g' was not declared in this scope
   76 |         foreach (p; g) {
      |                     ^