선인장 그래프에서 각 질의(입구 방, 지렁이 길이)마다 되돌아가지 않는 닫힌 보행이 존재하는지 판정하고, 가능하면 최단 거리를 구한다.
어려움8그래프DFS동적 계획법구현아직 제출이 없습니다시간 제한2초메모리 제한512 MBDona Minhoca는 사람들이 지렁이를 머리와 꼬리를 구분할 수 없는 회문 같은 동물이라고 말하는 것을 들으면 화가 난다.
Dona Minhoca는 방과 터널로 이루어진 굴에서 산다. 터널은 서로 다른 두 방을 잇고, 양쪽 방향으로 모두 지날 수 있다. 서로 다른 방 s1,s2,…,sn (n≥3)을 나열하고 sn+1=s1이라고 둘 때 모든 1≤i≤n에 대해 (si,si+1)이 터널이면, 이 나열을 사이클이라고 한다. 굴에는 사이클이 있을 수 있지만, 각 방은 최대 한 개의 사이클에만 속한다. 방과 터널은 좁다. 그래서 Dona Minhoca의 몸 일부가 어떤 방이나 터널을 차지하고 있는 동안에는 그 방이나 터널에 다시 들어갈 자리가 없다.
굴의 일부 방은 지상과 통한다. Dona Minhoca는 각 터널의 길이와 그 터널이 잇는 두 방이 적힌 지도를 가지고 있고, 자기 몸 길이도 안다.
Dona Minhoca는 지상과 통하는 방으로 굴에 들어가서 굴 안을 가능한 한 짧게 지나고 들어간 방으로 다시 나오려 한다. 이때 항상 앞으로만 움직이고 절대 뒤로 물러나지 않는다. 질의마다 이렇게 들어갔다 나오는 것이 가능한지 판정하고, 가능하면 굴 안에서 지나는 최소 거리를 구하라.
첫째 줄에 방의 수 S와 터널의 수 T가 주어진다 (2≤S≤104, 1≤T≤2S). 방은 1부터 S까지의 정수로 구분한다.
다음 T개 줄에는 터널 하나를 나타내는 세 정수 A, B, C가 주어진다 (1≤A<B≤S, 1≤C≤100). A와 B는 그 터널이 잇는 두 방이고, C는 터널의 길이다. 한 방은 최대 100개의 다른 방과 터널로 이어지고, 두 방을 잇는 터널은 최대 한 개다. 굴이 하나로 이어져 있다는 보장은 없다.
다음 줄에 질의의 수 Q가 주어진다 (1≤Q≤100). 다음 Q개 줄에는 질의 하나를 나타내는 두 정수 X와 M이 주어진다 (1≤X≤S, 1≤M≤105). X는 Dona Minhoca가 들어가려는 방이고, M은 Dona Minhoca의 몸 길이다.
각 질의마다 한 줄에 정수 하나만 출력한다. Dona Minhoca가 뒤로 물러나지 않고 질의로 주어진 방으로 들어가서 같은 방으로 나오기 위해 굴 안에서 지나야 하는 최소 거리를 출력한다. 뒤로 물러나지 않고 들어갔다 나오는 것이 불가능하면 -1을 출력한다.