Submission #244605

#TimeUsernameProblemLanguageResultExecution timeMemory
244605tqbfjotldPotemkin cycle (CEOI15_indcyc)C++14
100 / 100
951 ms3072 KiB
#include <bits/stdc++.h> using namespace std; int n,e; vector<int> adjl[1005]; vector<int> cur; int curpos[1005]; bool visited[1005][1005]; bool adjm[1005][1005]; int dfs(int node, int parent, int p2){ if (visited[node][parent]) return -1; //printf("node %d, %d\n",node+1,curpos[node]); if (adjm[node][p2]) return -1; int k= -1; visited[node][parent] = true; for (auto x : adjl[node]){ if (x==parent) continue; k = max(k,curpos[x]); } //printf("k: %d\n",k); if (k!=-1){ cur.push_back(node); return k; } else{ for (auto x : adjl[node]){ if (x==parent) continue; curpos[x] = curpos[node]+1; //printf("set %d\n",1+x); int res = dfs(x,node,parent); //printf("received %d\n",res); if (res>0){ cur.push_back(node); return res==curpos[node]?-2:res; } if (res==-2) return -2; curpos[x] = -1; //printf("reset %d\n",1+x); } return -1; } } int main(){ scanf("%d%d",&n,&e); memset(curpos,-1,sizeof(curpos)); for (int x = 0; x<e; x++){ int a,b; scanf("%d%d",&a,&b); a--;b--; adjl[a].push_back(b); adjl[b].push_back(a); adjm[a][b] = true; adjm[b][a] = true; } for (int x = 0; x<n; x++){ for (int y = 0; y<n; y++){ if (!adjm[x][y]) continue; if(visited[x][y]) continue; curpos[x] = 1; if (dfs(x,y,-1)==-2){ for (auto k : cur){ printf("%d ",k+1); } return 0; } curpos[x] = -1; } } printf("no"); }

Compilation message (stderr)

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