본문 바로가기

개발/알고리즘

일방통행

문제


1 에서 출발하여 N 까지 최소 길찾기, 길은 일방통행 임

각 노드는 빨걍, 파랑, 그린, 흰색을 가지는데

노드의 색깔이 

빨강색이면 빨강색 통행증 제출 (빨강색 통행증이 없으면 나갈 수 없음)

파랑색이면 파랑색 통행증 제출 (파랑색 통행증이 없으면 나갈 수 없음)

그린이면 그대로 통과

흰색이면 통행증 지급, 단 통행증은 각각 1개를 초과할 수 없다.

출발시 빨간 통행증랑1 파란 통행증 1을 가지지고 출발한다.

1에서 N까지 최소 길을 찾는 문제




입력


테스트 개수

노드의 수 1<=N<100,000

간선의 수 1<=M<300,000

색깔이 문자열로 주어짐

M개의 간선과 길이가 주어짐




출력


#+test_case + 1에서 출발하여 N 에 도착하는 최소 비용을 출력

만약 도달할 수 없다면 -1 출력





힌트


입력 예제


3

RBRGWBR

7 9 

1 2 1

2 3 4

3 2 3

2 4 5

4 3 7

2 5 3

5 1 10

4 6 2

6 7 3

5 8

RBWGGB

1 2 2

1 3 3

1 4 1

1 5 10

2 4 2

3 4 1

3 5 1

4 5 3

5 5

RBWGR

1 2 1

2 3 6

3 2 5

2 4 3

4 5 2





'개발 > 알고리즘' 카테고리의 다른 글

마트료시카  (0) 2016.12.09
폐지줍기  (0) 2016.12.09
합분해  (0) 2016.12.09
롤러코스터  (0) 2016.12.09
인접한 비트의 개수  (0) 2016.12.09