제출 #244426

#제출 시각아이디문제언어결과실행 시간메모리
244426SomeoneUnknownPotemkin cycle (CEOI15_indcyc)C++14
0 / 100
26 ms2048 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n, r; scanf("%d %d", &n, &r); int ved[n+1]; for(int i = 1; i <= n; ++i) ved[i] = 0; //unvisited vector<int> adjlist[n+1]; for(int i = 0; i < r; ++i){ int a, b; scanf("%d %d", &a, &b); adjlist[a].push_back(b); adjlist[b].push_back(a); } for(int i = 1; i <= n; ++i){ if(ved[i] != 0) continue; ved[i] = -1; //root queue<int> tovisit; tovisit.push(i); while(!tovisit.empty()){ int ving = tovisit.front(); tovisit.pop(); for(int j = 0; j < adjlist[ving].size(); ++j){ int nghbr = adjlist[ving][j]; if(ved[nghbr] == 0){ ved[nghbr] = ving; tovisit.push(nghbr); }else if(ved[ving] != nghbr && ved[ving] != ved[nghbr]){ stack<int> s; queue<int> e; //s.push(ving); //e.push(nghbr); int last; int sptr = ving; int eptr = nghbr; while(sptr != eptr){ s.push(sptr); sptr = ved[sptr]; if(sptr == eptr) break; e.push(eptr); last = eptr; eptr = ved[eptr]; } bool djoint = true; for(int k = 0; k < adjlist[s.top()].size(); k++){ if(adjlist[s.top()][k] == last) djoint = false; } if(djoint) printf("%d ", sptr); while(!s.empty()){ printf("%d ", s.top()); s.pop(); } while(!e.empty()){ printf("%d ", e.front()); e.pop(); } return 0; } } } } printf("no"); }

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

indcyc.cpp: In function 'int main()':
indcyc.cpp:24:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(int j = 0; j < adjlist[ving].size(); ++j){
                            ~~^~~~~~~~~~~~~~~~~~~~~~
indcyc.cpp:46:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                     for(int k = 0; k < adjlist[s.top()].size(); k++){
                                    ~~^~~~~~~~~~~~~~~~~~~~~~~~~
indcyc.cpp:6:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &n, &r);
     ~~~~~^~~~~~~~~~~~~~~~~
indcyc.cpp:12:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d %d", &a, &b);
         ~~~~~^~~~~~~~~~~~~~~~~
indcyc.cpp:47:25: warning: 'last' may be used uninitialized in this function [-Wmaybe-uninitialized]
                         if(adjlist[s.top()][k] == last) djoint = false;
                         ^~
#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...