Submission #172941

#TimeUsernameProblemLanguageResultExecution timeMemory
172941phillipPotemkin cycle (CEOI15_indcyc)C++14
50 / 100
1094 ms115696 KiB
#include<bits/stdc++.h> #define ll long long using namespace std; int vis[1009][1009],dep[1009]; vector<int>v[1009][1009],vv[1009]; vector<pair<int,int> >p; int cn[1009][1009]; int n,m,d; vector<int>c; void checkmn(int x,int par) { int mxd=0; for(int i=0;i<v[par][x].size();i++) { mxd=max(mxd,dep[v[par][x][i]]); } for(int i=mxd;i<c.size()-1;i++) { if(cn[c[i]][c[i+1]]==0) { return; } } for(int i=mxd;i<c.size();i++) { cout<<c[i]+1<<" "; } exit(0); } void dfs(int x,int par) { //cout<<x<<" "<<par<<"\n"; dep[x]=d; d++; vis[par][x]=1; c.push_back(x); for(int i=0;i<v[par][x].size();i++) { int y=v[par][x][i]; //if(vis[x][y])continue; if(dep[y]!=-1) { checkmn(x,par); } else dfs(y,x); } dep[x]=-1; d--; c.pop_back(); } int main() { memset(dep,-1,sizeof(dep)); cin>>n>>m; int x,y; for(int i=0;i<m;i++) { cin>>x>>y; x--;y--; p.push_back({x,y}); cn[x][y]=1; cn[y][x]=1; vv[x].push_back(y); vv[y].push_back(x); } for(int i=0;i<m;i++) { x=p[i].first; y=p[i].second; //cout<<x<<" "<<y<<": "; for(int j=0;j<vv[y].size();j++) { if(vv[y][j]==x)continue; if(cn[vv[y][j]][x])continue; v[x][y].push_back(vv[y][j]); // cout<<v[x][y].back()<<" "; } swap(x,y); //cout<<"\n"; //cout<<x<<" "<<y<<": "; for(int j=0;j<vv[y].size();j++) { if(vv[y][j]==x)continue; if(cn[vv[y][j]][x])continue; v[x][y].push_back(vv[y][j]); // cout<<v[x][y].back()<<" "; } // cout<<"\n"; } d=1; for(int i=0;i<m;i++) { x=p[i].first; y=p[i].second; c.clear(); if(vis[x][y]==0) { dep[x]=0; c.push_back(x); dfs(y,x); c.pop_back(); dep[x]=-1; } swap(x,y); c.clear(); //if(vis[x][y]==0) //{ dep[x]=0; c.push_back(x); dfs(y,x); c.pop_back(); dep[x]=-1; //} } cout<<"no"; }

Compilation message (stderr)

indcyc.cpp: In function 'void checkmn(int, int)':
indcyc.cpp:13:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<v[par][x].size();i++)
                 ~^~~~~~~~~~~~~~~~~
indcyc.cpp:17:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=mxd;i<c.size()-1;i++)
                   ~^~~~~~~~~~~
indcyc.cpp:24:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=mxd;i<c.size();i++)
                   ~^~~~~~~~~
indcyc.cpp: In function 'void dfs(int, int)':
indcyc.cpp:37:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<v[par][x].size();i++)
                 ~^~~~~~~~~~~~~~~~~
indcyc.cpp: In function 'int main()':
indcyc.cpp:71:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=0;j<vv[y].size();j++)
                     ~^~~~~~~~~~~~~
indcyc.cpp:81:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=0;j<vv[y].size();j++)
                     ~^~~~~~~~~~~~~
#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...