마라톤
시간 제한2초메모리 제한1024 MB
체크포인트 1에서 N까지 정확히 j개의 체크포인트를 지나는 최단 경로 길이를 j=1부터 K까지 구하고, 그 합을 998244353으로 나눈 나머지를 구합니다.
문제
명의 KSA 학생들이 벌점 누적에 대한 벌칙으로 마라톤을 하러 왔다. 마라톤 경기장은 개의 체크포인트와, 서로 다른 두 체크포인트를 양방향으로 연결하는 개의 길로 이루어져 있다. 번 길은 번 체크포인트와 번 체크포인트를 연결하며, 이 길을 지나는 데 의 시간이 걸린다. 임의의 체크포인트에서 다른 체크포인트로 가는 경로는 항상 존재한다.
학생들은 번 체크포인트에서 출발해 번 체크포인트에서 마라톤을 끝내야 한다. 번 학생의 벌점은 처음에 점이고, 체크포인트를 한 번 지날 때마다 1점씩 감점된다. 출발점인 번 체크포인트와 도착점인 번 체크포인트에서도 감점된다. 같은 체크포인트를 여러 번 지나도 된다. 단, 길 중간에서 되돌아올 수는 없다.
벌점이 0점이 된 이후에는 체크포인트를 지나면 안 되며, 마라톤이 끝났을 때 벌점이 정확히 0점이어야 한다. 빨리 쉬고 싶은 학생들을 위해 각 학생이 마라톤을 끝내는 데 걸리는 최소 시간을 구해보자.
입력
첫 번째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다.
번째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다.
출력
번 학생이 마라톤을 끝내기 위한 최소 시간을 라고 할 때, 를 으로 나눈 나머지를 출력한다.
단, 번 학생이 마라톤을 끝낼 방법이 없으면 이다.
제한
- ()
- ()
- 을 만족하는 모든 , 마다 번 체크포인트와 번 체크포인트를 잇는 경로가 존재한다.