13023.โ ABCDE
์ ๋ฐ์ดํธ ์๊ฐ : 2023-04-02 07:23:21 +0000[Gold V] ABCDE - 13023
์ฑ๋ฅ ์์ฝ
๋ฉ๋ชจ๋ฆฌ: 31256 KB, ์๊ฐ: 1688 ms
๋ถ๋ฅ
๊ทธ๋ํ ์ด๋ก , ๊ทธ๋ํ ํ์, ๊น์ด ์ฐ์ ํ์, ๋ฐฑํธ๋ํน
๋ฌธ์ ์ค๋ช
BOJ ์๊ณ ๋ฆฌ์ฆ ์บ ํ์๋ ์ด N๋ช ์ด ์ฐธ๊ฐํ๊ณ ์๋ค. ์ฌ๋๋ค์ 0๋ฒ๋ถํฐ N-1๋ฒ์ผ๋ก ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๊ณ , ์ผ๋ถ ์ฌ๋๋ค์ ์น๊ตฌ์ด๋ค.
์ค๋์ ๋ค์๊ณผ ๊ฐ์ ์น๊ตฌ ๊ด๊ณ๋ฅผ ๊ฐ์ง ์ฌ๋ A, B, C, D, E๊ฐ ์กด์ฌํ๋์ง ๊ตฌํด๋ณด๋ ค๊ณ ํ๋ค.
- A๋ B์ ์น๊ตฌ๋ค.
- B๋ C์ ์น๊ตฌ๋ค.
- C๋ D์ ์น๊ตฌ๋ค.
- D๋ E์ ์น๊ตฌ๋ค.
์์ ๊ฐ์ ์น๊ตฌ ๊ด๊ณ๊ฐ ์กด์ฌํ๋์ง ์ํ๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฌ๋์ ์ N (5 โค N โค 2000)๊ณผ ์น๊ตฌ ๊ด๊ณ์ ์ M (1 โค M โค 2000)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ์ ์ a์ b๊ฐ ์ฃผ์ด์ง๋ฉฐ, a์ b๊ฐ ์น๊ตฌ๋ผ๋ ๋ป์ด๋ค. (0 โค a, b โค N-1, a โ b) ๊ฐ์ ์น๊ตฌ ๊ด๊ณ๊ฐ ๋ ๋ฒ ์ด์ ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง๋ A, B, C, D, E๊ฐ ์กด์ฌํ๋ฉด 1์ ์์ผ๋ฉด 0์ ์ถ๋ ฅํ๋ค.
๐ก Solutions
๐ ABCDE.py
N, M = map(int,input().split())
friends = [set() for _ in range(N)]
is_travel = [False]*N
for _ in range(M):
a, b = map(int,input().split())
friends[a].add(b)
friends[b].add(a)
def bt(depth, now, end=5):
if depth == end:
return True
for friend in friends[now]:
if is_travel[friend] : continue
is_travel[friend] = True
trigger = bt(depth+1, friend)
if trigger : return True
is_travel[friend] = False
for i in range(N):
if bt(0,i):
print(1)
break
else:
print(0)