Skip to content

Commit ff2dac5

Browse files
authored
Merge pull request #151 from YoonYn9915/main
YoonYn9915/ 3월 1주차/ 3문제
2 parents 1f2926d + 658a837 commit ff2dac5

File tree

3 files changed

+81
-0
lines changed

3 files changed

+81
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import sys
2+
3+
input = sys.stdin.readline
4+
n = int(input())
5+
m = int(input())
6+
network = []
7+
visited = [0 for _ in range(n)]
8+
for _ in range(n):
9+
network.append(list(map(int, input().split())))
10+
lst = list(map(int, input().split()))
11+
12+
13+
def dfs(start):
14+
visited[start] = 1
15+
for index, j in enumerate(network[start]):
16+
if j == 1 and visited[index] == 0:
17+
visited[index] = 1
18+
dfs(index)
19+
20+
21+
dfs(lst[0] - 1)
22+
if 0 not in visited:
23+
print('YES')
24+
exit()
25+
for i in lst:
26+
if visited[i - 1] == 0:
27+
print('NO')
28+
exit()
29+
print('YES')
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import sys
2+
3+
sys.setrecursionlimit(1000000)
4+
input = sys.stdin.readline
5+
6+
n, m = map(int, input().split())
7+
parent = [i for i in range(n + 1)]
8+
9+
def find_parent(x):
10+
if parent[x] != x:
11+
parent[x] = find_parent(parent[x])
12+
return parent[x]
13+
14+
15+
def union_parent(a, b):
16+
a = find_parent(a)
17+
b = find_parent(b)
18+
if a < b:
19+
parent[b] = a
20+
else:
21+
parent[a] = b
22+
23+
24+
for _ in range(m):
25+
opr, a, b = map(int, input().split())
26+
if opr == 0:
27+
union_parent(a, b)
28+
else:
29+
if find_parent(a) == find_parent(b):
30+
print("YES")
31+
else:
32+
print("NO")
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
t = int(input())
2+
3+
for _ in range(t):
4+
n, m = map(int, input().split())
5+
data = list(map(int, input().split()))
6+
7+
result = 1
8+
while data:
9+
if data[0] < max(data):
10+
data.append(data.pop(0))
11+
12+
else:
13+
if m == 0: break
14+
15+
data.pop(0)
16+
result += 1
17+
18+
m = m - 1 if m > 0 else len(data) - 1
19+
20+
print(result)

0 commit comments

Comments
 (0)