만드는 중입니다

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

추측

시간 제한2초메모리 제한1024 MB

요약
숨은 카드 값 사이의 모듈러 합 제약이 주어질 때 모든 값을 확정하는 최소 뒤집기 비용을 구하고, 일관된 배정 하나를 출력합니다.
난이도

보통10점 중 6점

유형
그래프, DFS, 수학
정답자
아직 제출이 없습니다

문제

NN장의 카드가 모두 뒷면이 위로 오도록 한 줄로 놓여 있다. 각 카드에는 mm 이하의 양의 정수가 하나씩 적혀 있다.

ii번째 카드에 적힌 정수를 AiA_i라고 하자.

목표는 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N을 모두 맞히는 것이다.

할 수 있는 연산은 다음 하나뿐이다.

  • ii번째 카드를 골라 뒤집어 적힌 정수를 확인한다. 이때 비용은 XiX_i이다.

또한 다음 정보가 주어진다.

  • 각 i=1,2,⋯ ,Mi = 1, 2, \cdots, M에 대하여 Aai+Abi≡ci(modm)A_{a_i} + A_{b_i} \equiv c_i \pmod m.

A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N을 모두 맞히는 데 필요한 최소 비용은 얼마인가?

입력

첫째 줄에 NN, MM, mm이 공백으로 구분되어 주어진다.

둘째 줄에 X1,X2,⋯ ,XNX_1, X_2, \cdots, X_N이 공백으로 구분되어 주어진다.

이어서 MM개의 줄이 주어지고, ii번째 줄에 aia_i, bib_i, cic_i가 공백으로 구분되어 주어진다.

출력

비용을 얼마나 지불해도 NN장의 카드에 적힌 정수를 결정할 수 없다면(즉, 주어진 정보에 모순이 있다면) -1만 출력한다.

그렇지 않으면 첫째 줄에 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N을 모두 맞히는 데 필요한 최소 비용을 출력한다.

둘째 줄에 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N의 가능한 값 하나인 A1′,A2′,⋯ ,AN′A'_1, A'_2, \cdots, A'_N을 공백으로 구분하여 출력한다.

제한

  • 2≤N≤2×1052 \le N \le 2 \times 10^5
  • 1≤M≤1061 \le M \le 10^6
  • 2≤m≤1092 \le m \le 10^9
  • 1≤Xi≤1041 \le X_i \le 10^4 (1≤i≤N1 \le i \le N)
  • 1≤ai,bi≤N1 \le a_i, b_i \le N; 0≤ci<m0 \le c_i < m (1≤i≤M1 \le i \le M)
  • 입력으로 주어지는 모든 값은 정수이다.

예제2

  1. 예제 1

    입력
    5 2 7
    1 2 1 3 3
    1 3 6
    4 5 0
    
    예상 출력
    6
    5 2 1 3 4
    
  2. 예제 2

    입력
    2 2 3
    3 5
    1 2 0
    1 2 1
    
    예상 출력
    -1