선형대수학과 응용
시간 제한2초메모리 제한256 MB
0이 최대 5n개뿐인 n×n 행렬 A에서 A+A^2+...+A^k가 모든 원소가 0이 아닌 최소 k를 구하고, 불가능하면 0을 출력합니다.
문제
선형대수학을 수강하는 기념으로 청응이가 효원이에게 행렬 를 선물해줬다. 계산하기 편하라고 모든 항이 음이 아닌 정수이고 0이 아닌 항이 개 이하인 행렬을 줬다. 선형대수학을 수강하는 기대 속에 효원이는 을 계산해봤고, 은 보다 0인 항의 개수가 작거나 같다는 것을 확인했다. 마찬가지로 은 보다 0인 항의 개수가 작거나 같았다. 효원이는 이런 고민에 빠지게 되었다.
"어떤 가 존재해서 은 0인 항이 아예 없을 수도 있을까? 그런 가 존재한다면 최솟값은 얼마일까?"
효원이가 청응이에게 이걸 물어봤더니 "가 존재한다면 Cayley-Hamilton 정리에 따라 보다 작거나 같을 건데..."라는 대답을 받았다. 이 답변에 만족하지 않은 효원이를 위해, 가 존재하는지, 존재한다면 최솟값을 출력하는 프로그램을 작성하시오.
입력
첫 줄에는 행렬의 크기 이 주어지며, 을 만족한다.
둘째 줄부터 번째 줄에 걸쳐 행렬 가 주어진다. 각 줄에는 개의 정수가 공백으로 구분되어 주어지며, 번째 줄의 번째 수가 에 해당한다. 각 항은 을 만족하며, 중 보다 큰 항이 개 이하이다.
출력
조건을 만족하는 가 존재한다면 최소 를 출력하시오. 조건을 만족하는 가 없다면 0을 출력하시오.