제출 #669019

#제출 시각아이디문제언어결과실행 시간메모리
669019radinr85Pipes (CEOI15_pipes)C++14
10 / 100
925 ms25292 KiB
//radinr85 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef deque<int> dq; typedef long double ld; typedef pair<int , int> pii; typedef priority_queue<int> pq; const int maxn = 3e6; const ll mod = 1e9+7; #define F first #define S second #define endl "\n" #define pb push_back #define ms(x , y) memset(x , y , sizeof x) ll pw(ll a, ll b, ll md = mod){ll res = 1;while(b){if(b&1){res=(a*res)%md;}a=(a*a)%md;b>>=1;}return(res);} const int N = 1e5 + 1; vector<int> ver[N]; int par[N][2]; bool mark[N]; int cnt[N]; int n , m; int get_par(int u , int x) { return par[u][x] == u ? u : par[u][x] = get_par(par[u][x] , x); } bool merge(int u , int v , int x) { u = get_par(u , x); v = get_par(v , x); if(u == v) return false; par[u][x] = v; return true; } int DFS(int u) { mark[u] = true; for(auto v : ver[u]) { if(!mark[v]) { par[v][0] = u; par[v][1] = par[u][1] + 1; cnt[u] += DFS(v); } else if(par[u][1] - par[v][1] > 1) { cnt[u] ++; cnt[v] --; } } if(cnt[u] == 0 && par[u][0] != 0) cout << u << " " << par[u][0] << endl; return cnt[u]; } int main() { cin.tie(0)->sync_with_stdio(0); cin >> n >> m; for(int i = 1 ; i <= n ; i ++) par[i][0] = i , par[i][1] = i; for(int i = 0 ; i < m ; i ++) { int u , v; cin >> u >> v; if(merge(u , v , 0)) { ver[u].pb(v); ver[v].pb(u); } else if(merge(u , v , 1)) { ver[u].pb(v); ver[v].pb(u); } } ms(par , 0); for(int i = 1 ; i <= n ; i ++) if(!mark[i]) DFS(i); return 0; }

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

pipes.cpp: In function 'int main()':
pipes.cpp:83:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   83 |     for(int i = 1 ; i <= n ; i ++)
      |     ^~~
pipes.cpp:87:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   87 |  return 0;
      |  ^~~~~~
#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...