# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
41872 | octopuses | Pipes (CEOI15_pipes) | C++14 | 1288 ms | 3076 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//Giorgi Kldiashvili
#include <bits/stdc++.h>
#define ll long long
#define M 1000000007ll
using namespace std;
const int N = 100001;
int n, m, x, y, timer;
int p[N], P[N], c[N], d[N], in[N];
vector < int > G[N];
bool used[N];
int Parent(int x)
{
if(P[x] == x)
return x;
return P[x] = Parent(P[x]);
}
void go(int v)
{
c[v] = d[v] = in[v] = ++ timer;
used[v] = true;
for(int i = 0; i < G[v].size(); ++ i)
{
if(used[G[v][i]])
continue;
p[G[v][i]] = v;
go(G[v][i]);
}
}
void dfs(int v)
{
used[v] = true;
timer ++;
for(int i = 0; i < G[v].size(); ++ i)
{
if(used[G[v][i]])
continue;
dfs(G[v][i]);
c[v] = min(c[v], c[G[v][i]]);
d[v] = max(d[v], d[G[v][i]]);
}
if(p[v] == 0)
return;
if(c[v] >= in[v] && d[v] <= timer)
printf("%d %d\n", v, p[v]);
}
int main()
{
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; ++ i)
P[i] = i;
while(m --)
{
scanf("%d %d", &x, &y);
continue;
if(Parent(x) == Parent(y))
continue;
P[Parent(x)] = y;
G[x].push_back(y);
G[y].push_back(x);
}
return 0;
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; ++ i)
P[i] = i, used[i] = 0;
while(m --)
{
scanf("%d %d", &x, &y);
if(Parent(x) == Parent(y))
{
c[x] = min(c[x], in[y]);
d[x] = max(d[x], in[y]);
d[y] = max(d[y], in[x]);
c[y] = min(c[y], in[x]);
continue;
}
P[Parent(x)] = y;
}
for(int i = 1; i <= n; ++ i)
{
if(used[i]) continue;
dfs(i);
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |