이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define DIM 1010
using namespace std;
set <int> L[DIM],s;
deque <int> d,sol;
vector <pair<int,int> > mch;
int n,m,x,y,i,j,ok;
int viz[DIM];
int verif (int nod, int tata){
for (auto vecin : L[nod])
if (vecin != tata && s.find(vecin) != s.end())
return 0;
return 1;
}
void dfs (int nod, int dest){
if (ok)
return;
d.push_back(nod);
s.insert(nod);
viz[nod] = 1;
if (nod == dest && d.size() >= 4){
sol = d;
ok = 1;
return;
}
for (auto vecin : L[nod])
if (!viz[vecin] && verif(vecin,nod))
dfs (vecin,dest);
/// am terminat cu nod, trb sa l sterg
d.pop_back();
s.erase(nod);
}
int main (){
//ifstream cin ("date.in");
//ofstream cout ("date.out");
cin>>n>>m;
for (i=1;i<=m;i++){
cin>>x>>y;
L[x].insert(y);
L[y].insert(x);
mch.push_back(make_pair(x,y));
}
for (auto it : mch){
int x = it.first, y = it.second;
/// sterg muchia x,y
L[x].erase(y);
L[y].erase(x);
d.clear(), s.clear();
memset (viz,0,sizeof viz);
ok = 0;
dfs (x,y);
if (ok){
for (auto it : sol)
cout<<it<<" ";
return 0;
}
L[x].insert(y);
L[y].insert(x);
}
cout<<"no";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |