QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#673795 | #995. 桥 | lycc | RE | 0ms | 0kb | C++20 | 2.0kb | 2024-10-25 10:17:38 | 2024-10-25 10:17:39 |
answer
#include <bits/stdc++.h>
#define int long long
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define pb emplace_back
#define For(i, x, y) for (int i = (x); i <= (y); i ++)
#define rep(i, x, y) for (int i = (x); i >= (y); i --)
#define pii pair<int, int>
#define all(v) v.begin(), v.end()
#define sz(v) (int)((v).size())
#define ull unsigned long long
#define ls (p << 1)
#define rs (p << 1 | 1)
#define mp make_pair
#define i128 __int128
#define db long double
#define vi vector< int >
#define mem(v, x) memset(v, x, sizeof(v))
#define A3 array< int, 3 >
#define A4 array< int, 4 >
#define vpii vector< pair< int, int > >
using namespace std;
mt19937_64 rnd(time(0));
template< typename T > void cmin(T &x, T y) { return x = min(x, y), void(); }
template< typename T > void cmax(T &x, T y) { return x = max(x, y), void(); }
int ksm(int x, int y, int p) {
int v = 1; x %= p;
while (y) v = 1ll * v * ((y & 1) ? x : 1) % p, x = 1ll * x * x % p, y >>= 1;
return (v % p + p) % p;
}
bool MemoryST;
const int N = 1e5 + 5;
const int mod = 998244353;
const long long INF = 1e18;
const int base = 13131;
int n, m;
vpii e[N];
int a[N], b[N];
int dfn[N], low[N], num;
vi ans;
void dfs(int x, int edge) {
dfn[x] = low[x] = ++ num;
for (auto [y, id] : e[x])
if (!dfn[y]) {
dfs(y, id), cmin(low[x], low[y]);
if (low[y] > dfn[x]) ans.pb(id);
}
else if (id != edge) cmin(low[x], dfn[y]);
return;
}
void Main() {
cin >> n >> m;
For (i, 1, m) {
cin >> a[i] >> b[i];
e[a[i]].pb(mp(b[i], i)); e[b[i]].pb(mp(a[i], i));
}
For (i, 1, n) if (!dfn[i]) dfs(i, 0);
sort(all(ans));
for (int x : ans) cout << a[x] << ' ' << b[x] << '\n';
return;
}
bool MemoryED;
signed main() {
ios :: sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cerr << fixed << setprecision(6) << (&MemoryST - &MemoryED) / 1048576.0 << "MB\n";
int TESTCNT = 1;
// cin >> TESTCNT;
while (TESTCNT --) Main();
cerr << endl << 1e3 * clock() / CLOCKS_PER_SEC << "ms";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Runtime Error
input:
24942 387166 12556 21443 22404 16376 11073 24296 1535 11968 23745 2818 5073 12731 22550 14761 24118 12008 22695 18979 15118 13639 2080 8721 692 22578 22581 15267 9278 4127 7457 21674 17693 23448 10949 23429 9700 6009 14140 5064 7742 15164 17336 1662 18903 9760 17645 19575 6540 11942 11 4937 15282 10...