밀밭 삼각형 (작은 입력)

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

문제

장난꾸러기 몇 명이 밤새 밀밭에 커다란 삼각형을 눕혀 놓으려고 한다. 위에서 내려다본 밀밭은 간격이 일정한 격자이고, 두 격자선이 만나는 격자점 가운데 몇 곳에는 나무가 서 있다. 이들은 삼각형의 세 꼭짓점을 모두 나무 위에 두려고 한다. 삼각형의 중심도 격자점에 놓이기를 바란다.

세 꼭짓점이 (x1,y1)(x_1, y_1), (x2,y2)(x_2, y_2), (x3,y3)(x_3, y_3)인 삼각형의 중심은 (x1+x2+x33,y1+y2+y33)\left(\dfrac{x_1 + x_2 + x_3}{3}, \dfrac{y_1 + y_2 + y_3}{3}\right)이다.

밀밭에 있는 모든 나무의 정수 좌표가 주어진다. 서로 다른 나무 세 개를 꼭짓점으로 하고 중심의 좌표가 모두 정수인 삼각형이 몇 개인지 세어라. 면적이 0인 삼각형도 유효한 삼각형으로 센다.

입력

첫째 줄에 테스트 케이스의 개수 NN이 주어진다. 이어지는 NN개의 줄에는 각각 정수 nn, AA, BB, CC, DD, x0x_0, y0y_0, MM이 공백 하나로 구분되어 주어진다. nn은 나무의 개수다.

나무의 좌표는 이 여덟 개의 수로 아래 의사 코드가 출력하는 값이다. mod는 나머지 연산이다. 첫 번째 나무는 x0x_0y0y_0을 나머지 연산 없이 그대로 쓰므로 MM보다 클 수 있다.

X = x0, Y = y0
print X, Y
for i = 1 to n-1
  X = (A * X + B) mod M
  Y = (C * Y + D) mod M
  print X, Y

같은 자리에 나무가 두 개 놓이지 않도록 매개변수가 정해진다.

제한:

  • 1N101 \le N \le 10
  • 0A,B,C,D,x0,y01090 \le A, B, C, D, x_0, y_0 \le 10^9
  • 1M1091 \le M \le 10^9
  • 3n1003 \le n \le 100

출력

각 테스트 케이스마다 한 줄에 Case #X: Y 형식으로 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 서로 다른 나무 세 개를 꼭짓점으로 하며 중심이 격자점인 삼각형의 개수다.

힌트

첫 번째 예제의 첫 테스트 케이스에서 여덟 개의 수가 만드는 나무 네 개는 (0,1)(0, 1), (7,3)(7, 3), (17,5)(17, 5), (17,7)(17, 7)이다.