Ministarstvo | 프로그래밍의 벗 PivotOJ
PivotOJ

Ministarstvo

시간 제한: 1000ms메모리 제한: 1024MB출처: CHC 2024 Croatian Olympiad in InformaticsBOJ 31983
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Pero se nakon uspješne karijere u stranci koju nećemo imenovati, zaposlio u Ministarstvu turizma. Pero nadgleda mrežu od NN gradova, označenih brojevima od 11 do NN, gdje između svaka dva grada postoji točno jedna jednosmjerna cesta. Kako bi povećao prihode, odlučio je uvesti dozvole za prometovanje. Pero bi najradije uveo posebnu dozvolu za svaku cestu, no to bi alarmiralo njegove nadređene. Stoga, uvest će KK različitih dozvola, označenih od 11 do KK, te će za prolazak svakom cestom biti potrebno posjedovanje točno određene dozvole.

Kako bi ipak osigurao pozamašne prihode, Pero će se zadovoljiti sa sljedećim svojstvom.

  • Za svaki grad vv postoji neki grad uu, tako da iz grada vv nije moguće doći do grada uu posjedovanjem samo jedne dozvole.

Pero vas moli da mu pomognete, te da odredite najmanji KK takav da postoji pridruživanje dozvola s traženim svojstvom te neko takvo pridruživanje! Ako ne postoji takvo pridruživanje, ispišite -1.

입력

U prvom je retku prirodan broj NN.

U ii-tom od sljedećih NN redaka nalazi se NN brojeva ai,ja_{i,j} gdje je ai,j=1a_{i,j} = 1 ako postoji cesta iz grada ii u grad jj. Primijetite da je ai,i=0a_{i,i} = 0 te da je za iji \ne j točno jedan od brojeva ai,ja_{i,j} te aj,ia_{j,i} različit od nula.

출력

Ako ne postoji pridruživanje s traženim svojstvom u prvi i jedini redak ispište -1.

Inače, u prvi redak ispišite minimalan prirodan broj KK.

U sljedećih NN redaka ispište opis pridruživanja.

U ii-tom retku ispišite NN brojeva bi,jb_{i,j} gdje ako je ai,j=0a_{i,j} = 0 tada je i bi,j=0b_{i,j} = 0, a u suprotnom 1 ≤ b_{i,j} ≤ K označava koja je dozvola potrebna za prometovanje tom cestom.

힌트

Pojašnjenje trećeg probnog primjera:

Ceste za koje je potrebna prva dozvola su označene crvenom bojom, druga dozvola plavom i treća dozvola zelenom.

Iz grada 11 nije moguće doći do grada 33 koristeći samo jednu dozvolu.

Iz grada 22 nije moguće doći do grada 11 koristeći samo jednu dozvolu.

Iz grada 33 nije moguće doći do grada 22 koristeći samo jednu dozvolu.

Iz grada 44 nije moguće doći do grada 11 koristeći samo jednu dozvolu.

[이미지 1]

예제

예제 1

입력
3
0 1 0
0 0 1
1 0 0
출력
3
0 1 0
0 0 2
3 0 0

예제 2

입력
3
0 1 1
0 0 1
0 0 0
출력
-1

예제 3

입력
4
0 1 0 1
0 0 1 1
1 0 0 0
0 0 1 0
출력
3
0 1 0 1
0 0 2 3
3 0 0 0
0 0 2 0
코드를 제출하려면 로그인하세요.