* 언어 | 알고리즘

나 무섭지https://softeer.ai/practice/7726import java.io.*;import java.util.*;class Pair { int x, y; public Pair(int x, int y) { this.x = x; this.y = y; }}public class Main { public static final int MAX_NM = 1000; public static final int INF = 987654321; public static int n, m, player_step; public static int exit_x, exit_y; public static Pair[] monster_list = new..


각 정점 v에서 루트 r과 연결하는 유일한 경로 P에 대해서 정점 v와 에지로 연결된 정점 중에서 P상에 있는 정점을 v의 ‘부모 정점’이라고 한다. → 정점 v에서 루트 노드로 가는 경로에 포함되는 간선중에, 정점 v와 연결된 간선 반대편에 있는 노드를 부모 노드라고 함. 즉, 루트노드 - 정점 v 사이에 있는 v 인접 노드를 의미함. 트리 T에서 어떤 두 정점을 연결하는 에지를 제거하면 그 두 정점 외에도 경로가 존재하지 않는 정점 쌍이 있을 수 있다. 여러분은 “정점 v와 w를 연결하는 경로가 존재하는가?”와 같은 질의에 답해야 한다. 예를 들어, 그림 1에서 7과 11 사이의 에지를 제거하면 8과 5를 연결하는 경로는 존재하지 않는다. 트리 정보가 주어지고, 에지의 제거 정보와 질의가 임의의 순서..


서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 그로부터 일정 시간 뒤 a도 감염되고 만다. 이때 b가 a를 의존하지 않는다면, a가 감염되더라도 b는 안전하다. a ← b : a가 b를 의존한다. 위 조건을 활용하여 테스트케이스를 그림으로 표현해보면 다음과 같은 그래프로 나타낼 수 있다. TC2를 보았을 때 3은 1을 의존하고, 8초만에 감염된다. 하지만 3은 2도 의존하고, 이 2는 1을 의존하기 때문에 이 경로로 감염되는 시간을 구하면 2+4=6초로 시간상 더 빨리 감염된다. 따라서 3대가 6초 시간을 걸려 감염된다. 해킹한 컴퓨터 번호와 각 의존성이 주어질 때, 해킹당한 컴퓨터까지 포함하여 총 몇 대의 컴퓨터가 감염되며 그에..

현주는 ai > aj > ak와 i aj > ak 일 때 이를 선택할 수 있고 1개의 경우의 수가 생긴다. 세개를 모두 비교하기보다 중간값인 j를 골라 비교해보자. j보다 순서가 작은(i) 수 중에서 j 위치의 aj 보다 큰 값을 가지는 경우의 수 ci, j보다 순서가 큰(k) 수 중에서 aj 보다 작은 값을 가지는 경우의 수 ck. 값이 aj일 때 ci와 ck는 위 조건을 만족하는 각각의 경우의 수가 되고, ci*ck 로 곱하면 선택할 수 있는 모든 경우의 수가 된다. 예제 입력 1 ..