Submission #594326

#TimeUsernameProblemLanguageResultExecution timeMemory
594326andrei_boacaPotemkin cycle (CEOI15_indcyc)C++14
70 / 100
989 ms1876 KiB
#include <bits/stdc++.h> //#pragma GCC optimize("O3") using namespace std; mt19937 rng(time(NULL)); vector<int> muchii[1005]; bool adj[1005][1005]; auto S=chrono::steady_clock::now(); int n,m; vector<int> v; int use[1005]; int start=0; void dfs(int nod) { auto E=chrono::steady_clock::now(); int x=chrono::duration_cast<chrono::milliseconds>(E - S).count(); if(v.size()>=21) return; if(x>=990) { cout<<"no"; exit(0); } use[nod]=v.size(); bool good=1; int pmax=0; int pmin=1e9; vector<int> mypoz; for(int i:muchii[nod]) { if(use[i]) { if(i==v[v.size()-2]) continue; if(i==start) { if(v.size()>=4); else good=0; } else if(i!=v[v.size()-2]) good=0; pmax=max(pmax,use[i]); pmin=min(pmin,use[i]); mypoz.push_back(use[i]); } } sort(mypoz.begin(),mypoz.end()); if(v.size()-pmax+1>=4&&pmax!=0) { for(int i=pmax-1;i<v.size();i++) cout<<v[i]<<' '; exit(0); } if(adj[nod][start]&&pmin+1>=4&&pmin!=1e9) { for(int i=0;i<pmin;i++) cout<<v[i]<<' '; cout<<nod; exit(0); } for(int i=1;i<mypoz.size();i++) { int st=mypoz[i-1]; int dr=mypoz[i]; if(dr-st+2>=4) { for(int j=st-1;j<dr;j++) cout<<v[j]<<' '; cout<<nod; exit(0); } } if(good) { for(int i:muchii[nod]) if(!use[i]) { v.push_back(i); dfs(i); use[i]=0; v.pop_back(); } } } int main() { cin>>n>>m; for(int i=1;i<=m;i++) { int a,b; cin>>a>>b; muchii[a].push_back(b); muchii[b].push_back(a); adj[a][b]=adj[b][a]=1; } for(int i=1;i<=n;i++) shuffle(muchii[i].begin(),muchii[i].end(),rng); vector<int> nodes; for(int i=1;i<=n;i++) nodes.push_back(i); shuffle(nodes.begin(),nodes.end(),rng); for(int i:nodes) { start=i; v.clear(); v.push_back(i); for(int j=1;j<=n;j++) use[j]=0; dfs(i); } cout<<"no"; return 0; }

Compilation message (stderr)

indcyc.cpp: In function 'void dfs(int)':
indcyc.cpp:51:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |         for(int i=pmax-1;i<v.size();i++)
      |                          ~^~~~~~~~~
indcyc.cpp:62:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |     for(int i=1;i<mypoz.size();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...