반평면
시간 제한12초메모리 제한1024 MB
각 질의는 직선 ax+by=c보다 아래에 있는 점들의 값을 더합니다. 그다음 그 점들의 값에 3x3 행렬을 곱해 갱신합니다.
문제
평면 위에 개의 점이 있다. 번째 점 의 값은 이다. 집합 는 위의 모든 행렬이고, 집합 는 위의 모든 행렬이며, 이다. 는 행렬 덧셈으로, 두 종류의 곱은 를 법으로 한 행렬 곱으로 계산한다.
는 의 영원소이고, 는 의 항등원이다. 의 덧셈은 교환법칙과 결합법칙을 만족하며 가 항등원이다. 와 의 곱은 의 곱과 호환되고 의 덧셈에 대해 분배법칙을 만족한다. 의 곱은 결합법칙을 만족하며 가 항등원이다. 풀이에서는 이 성질만 사용한다.
개의 질의가 주어진다. 각 질의는 , , 와 행렬 로 이루어진다. 질의마다 로 둔다. 를 만족하는 모든 점 에 대해 를 로 바꾸고, 이어서 를 로 바꾼다. 마지막 가 질의의 답이다. 질의는 입력 순서대로 수행하며, 바뀐 는 이후 질의에도 그대로 남는다.
입력
첫 줄에 ()이 주어진다. 이어지는 개의 줄에는 정수 다섯 개 가 주어진다. 단, 이다.
다음 줄에는 ()이 주어진다. 이어지는 개의 줄에는 정수 열두 개 가 주어진다. 단, , , 이며, 행렬의 모든 원소는 이상 이하이다.
모든 질의 와 점 에 대해 이다. 서로 다른 두 질의 , 에 대해 와 는 서로 다르다.
출력
각 질의마다 의 성분 , , 를 공백으로 구분해 한 줄에 출력한다.
힌트
풀이는 문제에 나온 성질 이외의 행렬 연산 성질에 의존하지 않는다. 행렬은 이 문제를 채점기로 시험할 수 있도록 하기 위해서만 사용되었다.