군 (Group)

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

수학에서 군(group) $G$ 는 원소들의 집합과 하나의 연산($\times$ 로 표기)으로 이루어진 대상으로, $x$ 와 $y$ 가 $G$ 에 속하면 $x \times y$ 도 $G$ 에 속한다. 이 연산은 다음 성질을 만족한다.

  • 결합법칙: $G$ 의 모든 $x$, $y$, $z$ 에 대해 $x \times (y \times z) = (x \times y) \times z$ 이다.
  • 항등원: $G$ 에는 항등원 $i$ 가 존재하여, 모든 $x \in G$ 에 대해 $x \times i = x$ 이고 $i \times x = x$ 이다.
  • 역원: 모든 원소 $x$ 에 대해 역원 $x^{-1}$ 이 존재하여 $x \times x^{-1} = i$ 이고 $x^{-1} \times x = i$ 이다.

군은 원자의 양자 상태나 루빅스 큐브를 푸는 동작을 모형화하는 등 다양한 곳에 쓰인다. 덧셈에 대한 정수 전체는 분명히 군을 이루지만($0$ 이 항등원, $x$ 의 역원은 $-x$, 결합법칙은 연습으로 증명할 수 있다) 이 군은 무한하며, 이 문제에서는 유한군만 다룬다.

유한군의 간단한 예로 덧셈에 대한 $10$ 을 법으로 하는 정수가 있다. 원소는 $0, 1, \ldots, 9$ 이고, 두 수를 더한 뒤 가장 낮은 자리 숫자만 남긴다. 여기서 항등원은 $0$ 이다. 이 군은 $x \times y = y \times x$ 도 만족하지만, 항상 그런 것은 아니다. 원소가 $a, b, c, d, e, i$ 인 군을 생각하자. 아래 "곱셈표"가 그 연산을 정의한다. 필요한 성질(결합법칙, 항등원, 역원)이 모두 성립하지만, 예를 들어 $c \times d = a$ 인 반면 $d \times c = b$ 이다.

주어진 곱셈표들의 나열을 읽어, 각 표가 정의하는 구조가 군인지 아닌지 판정하는 프로그램을 작성하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 정수 $n$ ($0 \le n \le 100$) 으로 시작한다. $n = 0$ 인 테스트 케이스가 나오면 입력이 끝난다. 입력을 간단히 하기 위해 후보 구조의 $n$ 개 원소를 정수 $1, \ldots, n$ 으로 나타내며, 항등원은 이 가운데 어느 것이든 될 수 있다(반드시 원소 $1$ 인 것은 아니다). 정수 $n$ 다음에는 $n$ 개의 줄이 오고, 각 줄에는 $[1, \ldots, n]$ 범위의 정수 $n$ 개가 있다. 이 중 $p$ 번째 줄의 $q$ 번째 정수가 $p \times q$ 의 값이다.

출력

각 테스트 케이스에 대해, 구조가 군이면 한 줄에 yes 를, 그렇지 않으면 한 줄에 no 를 출력한다. $n = 0$ 인 마지막 테스트 케이스에 대해서는 아무것도 출력하지 않는다.