제출 #389201

#제출 시각아이디문제언어결과실행 시간메모리
389201Ahmad_HasanPotemkin cycle (CEOI15_indcyc)C++17
30 / 100
1081 ms1988 KiB
#include <bits/stdc++.h>

using namespace std;

vector<vector<int> > adj;
vector<int>vis,inst;
stack<int>s;

int f=0;
bool check(int f,int t){
    for(int i=0;i<adj[f].size();i++){
        if(adj[f][i]==t)
            return true;
    }
    return false;
}
void dfs(int cr,int p=-1){
   /// cout<<cr<<' '<<p<<'\n';
    vis[cr]=1;
    s.push(cr);
    inst[cr]=1;
    for(int i=0;i<adj[cr].size()&&!f;i++){
        int nw=adj[cr][i];
        if(inst[nw]&&nw!=p&&!check(nw,p)){
            f=1;
            ///cout<<'h'<<'\n';
            while(s.top()!=nw){
                cout<<s.top()<<' ';
                if(s.top()!=p&&check(cr,s.top())){
                    cout<<'\n';
                    return;
                }
                s.pop();
            }
           /// cout<<s.top()<<'#'<<'\n';
            return;

        }else if(!vis[nw]){
            if(!check(nw,p)){
                dfs(nw,cr);
            }
        }
    }
    if(f)
        return;
    inst[cr]=0;
    s.pop();
}


int32_t main()
{/**
    ios_base::sync_with_stdio(0);
    cin.tie(0);      cout.tie(0);*/
    int n,m;
    cin>>n>>m;
    adj.resize(n+5);
    vis=vector<int>(n+5);
    for(int i=0;i<m;i++){
        int x,y;
        cin>>x>>y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }

    for(int i=1;i<=n;i++){
        s=stack<int>();
        inst=vis=vector<int>(n+5);
        dfs(i);
    }
    if(!f)
        cout<<"no\n";



    return 0;
}

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

indcyc.cpp: In function 'bool check(int, int)':
indcyc.cpp:11:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |     for(int i=0;i<adj[f].size();i++){
      |                 ~^~~~~~~~~~~~~~
indcyc.cpp: In function 'void dfs(int, int)':
indcyc.cpp:22:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |     for(int i=0;i<adj[cr].size()&&!f;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...