행렬 악몽
시간 제한1초메모리 제한1024 MB
정수 계수 다변수 다항식이 주어졌을 때, 그 다항식과 같은 순회 가중치를 갖는 작은 Z-var 행렬을 만들거나 해가 없으면 0을 출력합니다.
문제
오비완이라면 이렇게 말했을 것이다: "이것은 네가 찾는 문제 설명이 아니다. 그냥 지나가라."
이중 팩토리얼 수는 다음 점화식으로 정의되는 수 이다: , 그리고 모든 에 대해 . 예를 들어 이다.
모든 원소가 집합 에 속하는 길이 의 수열을 차수 의 제한 수열이라고 한다. 예를 들어 은 차수 의 제한 수열이다. 차수 의 모든 제한 수열의 집합을 으로 적는다.
수열 의 확산 인자는 이다.
수열 쌍과 쌍의 수열 사이에는 직접적인 동형 대응이 있다. 이고 , 이라 하자. 대응하는 쌍의 수열 을 로 적는다.
정수 쌍은 사전식으로 비교한다. 는 이거나 ()인 경우를 뜻한다. 정수 쌍의 수열 이 모든 에 대해 을 만족하면 는 사전식으로 정렬되어 있다고 한다. [가 사전식으로 정렬되어 있으면 , 아니면 ]으로 정의한다.
행과 열을 부터 까지 번호 매긴 행렬 을 생각하자. 원소는 로 적는다. 각 원소가 정수이거나 변수인 행렬을 -var 행렬이라고 한다. 의 단계 순회 가중치는 다음과 같다.
정수 계수의 다변수 다항식 가 주어진다. 가 되는, 충분히 작은 -var 행렬 을 하나 구하라.
입력
첫 줄에는 테스트 케이스의 개수 가 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있다.
각 테스트 케이스는 다항식을 설명하는 한 줄로 이루어진다. 변수는 a부터 z까지의 알파벳 문자이며, 문법은 입력 파일에서 명확하게 드러난다. 각 다항식의 연산(덧셈, 뺄셈, 곱셈)은 50개 미만이다.
출력
각 테스트 케이스마다 행렬 하나를 다음 형식으로 출력한다. 먼저 크기 을 쓰고, 이어서 모든 원소를 행 우선 순서로 쓴다. 원소 사이에는 양의 길이를 가진 공백이 몇 개든 들어갈 수 있다. 행렬의 크기는 을 넘을 수 없다. 모든 정수는 이상 이하여야 한다.
주어진 다항식에 대해 그런 행렬이 존재하지 않으면 대신 하나만 출력한다.