제출 #109987

#제출 시각아이디문제언어결과실행 시간메모리
109987someone_aaPipes (CEOI15_pipes)C++17
20 / 100
3832 ms13132 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair using namespace std; const int maxn = 100100; vector<int>g[maxn]; int n, m; int tin[maxn], low[maxn]; int U[2][maxn]; int find(int t, int x){ return x==U[t][x] ? x : U[t][x]=find(t,U[t][x]); } void unite(int t, int x, int y){ if(find(t,x)==find(t,y)) return; U[t][U[t][y]]=U[t][x]; } int br; bool visited[maxn]; void dfs(int node, int p) { tin[node] = br++; low[node] = tin[node]; visited[node] = true; for(int i:g[node]) { if(i == p) continue; if(visited[i]) { low[node] = min(low[node], tin[i]); } else { dfs(i, node); low[node] = min(low[node], low[i]); if(low[i] > tin[node]) { cout<<i<<" "<<node<<"\n"; } } } } int main() { cin>>n>>m; int u, v; for(int i=1; i<=n; i++) U[0][i]=U[1][i]=i; for(int i=1; i<=m; i++){ int u, v; cin>>u>>v; if(find(0,u)==find(0,v)){ if(find(1,u)==find(1,v)) continue; unite(1,u,v); } else unite(0,u,v); g[u].push_back(v); g[v].push_back(u); } for(int i=1;i<=n;i++) { if(!visited[i]) { dfs(i, -1); } } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

pipes.cpp: In function 'int main()':
pipes.cpp:46:9: warning: unused variable 'u' [-Wunused-variable]
     int u, v;
         ^
pipes.cpp:46:12: warning: unused variable 'v' [-Wunused-variable]
     int u, v;
            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...