신제품 개발
시간 제한1.5초메모리 제한1024 MB
정점 1에서 시작해 K번의 단계를 진행하며, 최종 정점 u와 카운터 c를 1000000007로 나눈 나머지를 구합니다.
문제
FuriosaAI는 차세대 NPU(신경망 처리 장치) 제품을 만들어 AI 개발을 개척하는 데 도움을 줍니다. 추론에 초점을 맞춘 NPU 제품은 비용과 에너지 소모량을 줄여 제약 없이 혁신할 수 있게 합니다.
FuriosaAI에서 일하는 연구원 주원이가 새로운 제품을 만들었습니다.
이 제품의 구성 요소는 다음과 같습니다.
- 제품에는 특수한 작업을 하는 신경망의 구조가 이미 새겨져 있습니다. 이 신경망은 개의 정점과 개의 간선으로 이루어진 방향 그래프로 볼 수 있습니다.
- 신경망 추론을 할 때는 관심 있는 번 정점과 카운터 가 있습니다. 제품 가동 전에 , 으로 초기화됩니다.
- 신경망의 번 정점은 증분 를 가집니다.
- 신경망의 번 간선은 번 정점에서 번 정점으로 이어지며, 두 정점은 서로 다릅니다.
- 신경망의 번 간선은 특성값 를 가지며, 모든 특성값은 서로 다릅니다.
이 제품은 다음 과정을 번 반복합니다.
- 먼저 번 정점에서 나가는 간선 중 이면서 가 가장 큰 간선을 찾아 이를 번 간선이라 합니다. 를 로 바꿉니다. 즉, 관심 정점을 번 간선을 따라 이동시킵니다. 그런 간선이 없다면 아무 일도 하지 않습니다.
- 의 값을 로 바꿉니다.
연구원 주원이는 1초에 번만 연산을 수행할 수 있다는 PSer들의 통념을 깨고, 일 때도 1초 만에 연산을 수행하려 합니다. 여러분은 주원이의 계획을 도와야 합니다!
입력
첫 번째 줄에 , , 가 공백으로 구분되어 주어집니다.
두 번째 줄에 가 공백으로 구분되어 주어집니다.
이후 개의 줄에 걸쳐 , , 가 공백으로 구분되어 주어집니다.
출력
제품이 연산 수행을 끝냈을 때의 상태인 와 을 공백을 사이에 두고 출력합니다.
제한
- 주어지는 모든 수는 정수입니다.
- ()
- , ()
- 쌍은 중복되어 주어질 수 있습니다.
- ()
- 은 서로 다릅니다.