# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
680457 |
2023-01-10T22:11:14 Z |
danikoynov |
Pipes (CEOI15_pipes) |
C++14 |
|
1036 ms |
8844 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 = 1e5 + 10;
struct edge
{
int v, u;
edge(int _v, int _u)
{
v = _v;
u = _u;
}
};
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 |
Incorrect |
2 ms |
2644 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
5 ms |
2888 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
112 ms |
2844 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
137 ms |
3212 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
260 ms |
4068 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
353 ms |
6932 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
534 ms |
7620 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
673 ms |
8832 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
825 ms |
8844 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1036 ms |
8476 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |