만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

총깡 총깡

면접 대비

시간 제한1초메모리 제한256 MB

요약
진서의 집에서 다익스트라를 돌려 가장 가까운 A형과 B형 집을 찾고, 더 가까운 쪽을 출력한다. 거리가 같으면 A형이다.
난이도

보통10점 중 4점

유형
최단 경로, 그래프, 힙, 동적 계획법
정답자
아직 제출이 없습니다

문제

동물 애호가 진서는 총깡총깡 뛰는 동물과 짝폴짝폴 뛰는 동물을 각각 KK마리씩 키운다. 다른 지역에 취업한 진서는 내일 이사를 한다.

새 집에서 함께 살 룸메이트 일호가 동물을 싫어해서, 진서는 근처의 집에 동물을 한 마리씩 맡기려고 한다.

진서가 동물을 맡길 수 있는 집은 A형 집과 B형 집의 두 종류다.

우연히도 총깡총깡 뛰는 동물, 짝폴짝폴 뛰는 동물, A형 집, B형 집의 수는 모두 KK로 같다.

진서는 같은 종류의 동물은 같은 종류의 집에 맡기려고 한다. 즉 총깡총깡 뛰는 동물을 모두 A형 집에 맡기고 짝폴짝폴 뛰는 동물을 모두 B형 집에 맡기거나, 그 반대로 맡긴다.

진서는 총깡총깡 뛰는 동물을 조금 더 좋아한다. 그래서 모든 동물이 각자의 집에서 동시에 출발해 도로를 따라 진서의 집으로 올 때, 가장 먼저 도착하는 동물이 총깡총깡 뛰는 동물이기를 바란다. 동물은 모두 같은 속도로 움직이므로, 진서의 집까지 최단 거리가 가장 짧은 집에 사는 동물이 가장 먼저 도착한다.

진서가 살 집, A형 집, B형 집, 그리고 어느 종류도 아닌 집이 있는 지도가 주어진다. 총깡총깡 뛰는 동물이 A형 집과 B형 집 중 어디에 살아야 하는지 구하고, 가장 먼저 도착하는 총깡총깡 뛰는 동물이 사는 집과 진서의 집 사이의 최단 거리를 구하라.

진서의 집에서 가장 가까운 A형 집까지의 최단 거리와 가장 가까운 B형 집까지의 최단 거리가 같으면 총깡총깡 뛰는 동물은 A형 집에 산다.

입력

첫째 줄에 전체 집의 수 NN과 집과 집을 잇는 도로의 수 MM이 공백으로 구분되어 주어진다. (3≤N≤5 0003 \le N \le 5\,000, 3≤M≤20 0003 \le M \le 20\,000) 집에는 11번부터 NN번까지 번호가 붙어 있다.

둘째 줄에 진서의 집 번호 JJ가 주어진다. (1≤J≤N1 \le J \le N)

셋째 줄에 동물 종류별 마릿수 KK가 주어진다. (1≤K1 \le K, 2K≤N2K \le N)

넷째 줄에 A형 집 KK개의 번호가 공백으로 구분되어 주어진다.

다섯째 줄에 B형 집 KK개의 번호가 공백으로 구분되어 주어진다. A형 집과 B형 집은 서로 겹치지 않는다.

다음 MM개의 줄에는 각각 세 정수 XX, YY, ZZ가 주어진다. (1≤X,Y≤N1 \le X, Y \le N, 1≤Z≤1001 \le Z \le 100) 이는 XX번 집과 YY번 집을 잇는 길이 ZZ인 양방향 도로가 있다는 뜻이다.

출력

진서의 집에서 도달할 수 있는 A형 집이나 B형 집이 하나라도 있으면, 첫째 줄에 총깡총깡 뛰는 동물이 살 집의 종류(A 또는 B)를 출력하고 둘째 줄에 그 종류의 집 중 진서의 집에서 가장 가까운 집까지의 최단 거리를 출력한다.

A형 집에만 도달할 수 있으면 A를, B형 집에만 도달할 수 있으면 B를 출력하고 다음 줄에 거리를 출력한다. A형 집과 B형 집 모두 진서의 집에서 도달할 수 없으면 -1만 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    5 6
    2
    2
    1 4
    3 5
    1 2 3
    1 5 3
    1 3 10
    2 4 7
    2 5 2
    3 4 2
    
    예상 출력
    B
    2