[백준 13023] ABCDE C++

[백준 13023] ABCDE C++

#include < iostream >

#include < vector >

using namespace std ;

vector < int > v[ 2000 ];

bool visited[ 2000 ];

bool ispossible;

void dfs( int node, int depth) {

if (depth = = 4 ) {

// 깊이가 4가 되면 ABCDE를 만족한다.

ispossible = true ;

return ;

}

visited[node] = true ;

// DFS

for ( int i = 0 ; i < v[node]. size (); i + + ) {

int next = v[node][i];

if ( ! visited[next] & & ! ispossible) {

dfs(next, depth + 1 );

}

}

visited[node] = false ;

}

int N, M;

int main() {

cin > > N > > M;

// 그래프 처리

for ( int i = 0 ; i < M; i + + ) {

int a, b;

cin > > a > > b;

v[a]. push_back (b);

v[b]. push_back (a);

}

for ( int i = 0 ; i < N; i + + ) {

dfs(i, 0 );

if (ispossible) {

break ;

}

}

cout < < ispossible;

return 0 ;

}

from http://gamedoridori.tistory.com/52 by ccl(A) rewrite - 2021-10-03 00:00:34