diff --git "a/\354\235\264\355\213\260\354\234\240\354\247\204/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" "b/\354\235\264\355\213\260\354\234\240\354\247\204/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" new file mode 100644 index 0000000..b8e1f30 --- /dev/null +++ "b/\354\235\264\355\213\260\354\234\240\354\247\204/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" @@ -0,0 +1,44 @@ +import sys +from collections import deque + +n = int(sys.stdin.readline()) +visited = [[False] * n for _ in range(n)] +grid = [list(map(str, input())) for _ in range(n)] +queue = deque() + +dx = [-1, 1, 0, 0] +dy = [0, 0, -1, 1] + +def bfs(x, y): + queue.append([x, y]) + while queue: + x, y = queue.popleft() + for i in range(4): + nx = x + dx[i] + ny = y + dy[i] + if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny] and grid[nx][ny] == grid[x][y]: + queue.append([nx, ny]) + visited[nx][ny] = True + +count = 0 +for i in range(n): + for j in range(n): + if not visited[i][j]: + bfs(i, j) + count += 1 +print(count, end=' ') + +for i in range(n): + for j in range(n): + if grid[i][j] == 'R': + grid[i][j] = 'G' + +visited = [[False] * n for _ in range(n)] + +count = 0 +for i in range(n): + for j in range(n): + if not visited[i][j]: + bfs(i, j) + count += 1 +print(count) \ No newline at end of file diff --git "a/\354\235\264\355\213\260\354\234\240\354\247\204/15723_n\353\213\250 \353\205\274\353\262\225.py" "b/\354\235\264\355\213\260\354\234\240\354\247\204/15723_n\353\213\250 \353\205\274\353\262\225.py" new file mode 100644 index 0000000..a4398c5 --- /dev/null +++ "b/\354\235\264\355\213\260\354\234\240\354\247\204/15723_n\353\213\250 \353\205\274\353\262\225.py" @@ -0,0 +1,27 @@ +import sys + +input = sys.stdin.readline +INF = int(1e9) + +N = int(sys.stdin.readline()) + +alphabet = "abcdefghijklmnopqrstuvwxyz" +n = len(alphabet) +graph = [[INF] * n for _ in range(n)] + +for _ in range(N): + a, b = map(alphabet.index, input().rstrip().split(" is ")) + graph[a][b] = 1 + +for k in range(n): + for i in range(n): + for j in range(n): + graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j]) + +M = int(input()) +for _ in range(M): + a, b = map(alphabet.index, input().rstrip().split(" is ")) + if graph[a][b] == INF: + print("F") + else: + print("T")