Submission #246545

#TimeUsernameProblemLanguageResultExecution timeMemory
246545dantoh000Potemkin cycle (CEOI15_indcyc)C++14
50 / 100
1115 ms530136 KiB
#include <bits/stdc++.h> using namespace std; int n,m; int id[1005][1005]; int A[1005]; int B[1005]; int p[100005]; vector<int> ans; void dfs(int a, int b){ for (int c = 1; c <= n; c++){ if (c != a && id[b][c] && !id[a][c]){ if (p[id[b][c]] == 0){ p[id[b][c]] = id[a][b]; dfs(b,c); } else{ //printf("cycle found to %d %d\n",b,c); bool can = true; int ca = a, cb = b; while (ca != b && cb != c){ int K = p[id[ca][cb]]; if (K == -1) { can = false; break; } int na = A[K], nb = B[K]; if (nb != ca) swap(na,nb); //printf("%d %d\n",ca,cb); ans.push_back(cb); ca = na; cb = nb; } if (can){ ans.push_back(cb); for (auto x : ans) printf("%d ",x); printf("\n"); exit(0); } else ans.clear(); } } } } int main(){ scanf("%d%d",&n,&m); for (int i = 1; i <= m; i++){ scanf("%d%d",&A[i],&B[i]); id[B[i]][A[i]] = id[A[i]][B[i]] = i; } for (int i = 1; i <= m; i++){ if (p[i] == 0) { p[id[A[i]][B[i]]] = -1; dfs(A[i],B[i]); } } printf("no"); }

Compilation message (stderr)

indcyc.cpp: In function 'int main()':
indcyc.cpp:46:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~
indcyc.cpp:48:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d",&A[i],&B[i]);
         ~~~~~^~~~~~~~~~~~~~~~~~~~
#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...