# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
680460 |
2023-01-10T22:14:51 Z |
danikoynov |
Pipes (CEOI15_pipes) |
C++14 |
|
597 ms |
12772 KB |
/**
____ ____ ____ ____ ____ ____
||l |||e |||i |||n |||a |||d ||
||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|
**/
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
void speed()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
const int maxn = 8e4 + 10;
int n, m;
int par1[maxn], par2[maxn];
int find_leader1(int v)
{
if (v == par1[v])
return v;
return (par1[v] = find_leader1(par1[v]));
}
bool connected1(int v, int u)
{
v = find_leader1(v);
u = find_leader1(u);
if (v == u)
return true;
par1[u] = v;
return false;
}
int find_leader2(int v)
{
if (v == par2[v])
return v;
return (par2[v] = find_leader2(par2[v]));
}
bool connected2(int v, int u)
{
v = find_leader2(v);
u = find_leader2(u);
if (v == u)
return true;
par2[u] = v;
return false;
}
vector < int > g[maxn];
int tin[maxn], low[maxn], timer;
void dfs(int v, int p)
{
tin[v] = low[v] = ++ timer;
///cout << v << " : " << p << " " << g[v].size() << endl;
bool tf = false;
for (int u : g[v])
{
if (u == p && !tf)
{
tf = true;
continue;
}
if (tin[u] != 0)
{
low[v] = min(low[v], tin[u]);
}
else
{
dfs(u, v);
if (low[u] > tin[v])
cout << v << " " << u << endl;
low[v] = min(low[v], low[u]);
}
}
}
void solve()
{
cin >> n >> m;
int v, u;
for (int i = 1; i <= n; i ++)
par1[i] = i, par2[i] = i;
for (int i = 1; i <= m; i ++)
{
cin >> v >> u;
if (connected1(v, u))
{
if (!connected2(v, u))
{
g[v].push_back(u);
g[u].push_back(v);
}
}
else
{
g[v].push_back(u);
g[u].push_back(v);
}
}
for (int i = 1; i <= n; i ++)
if (tin[i] == 0)
dfs(i, 0);
}
int main()
{
speed();
solve();
return 0;
}
/**
3 2
1 2
2 3
*/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2132 KB |
Output is correct |
2 |
Correct |
1 ms |
2132 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2772 KB |
Output is correct |
2 |
Correct |
5 ms |
2388 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
109 ms |
2632 KB |
Output is correct |
2 |
Correct |
77 ms |
2380 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
136 ms |
3432 KB |
Output is correct |
2 |
Correct |
210 ms |
2784 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
227 ms |
5268 KB |
Output is correct |
2 |
Correct |
285 ms |
4836 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
354 ms |
11460 KB |
Output is correct |
2 |
Correct |
298 ms |
7004 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
597 ms |
12772 KB |
Output is correct |
2 |
Correct |
494 ms |
9276 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
5 ms |
5480 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
5 ms |
5492 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
5 ms |
5460 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |