해싱

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

문제

상근이는 정수를 00부터 m1m-1까지의 값으로 대응시키는 해싱 함수

h(y)=(ay+b)modmh(y) = (a \cdot y + b) \bmod m

를 만들었다.

정수 xx, nn, cc, dd가 주어질 때, 해시 값

h(x), h(x+1), , h(x+n)h(x),\ h(x+1),\ \dots,\ h(x+n)

중에서 값이 구간 [c,d][c, d] 안에 들어가는 것이 몇 개인지 세는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 tt (1t1051 \le t \le 10^{5})가 주어진다.

다음 tt개의 줄에는 각각 정수 aa, bb, xx, nn, cc, dd, mm이 공백으로 구분되어 주어진다.

  • 1m10151 \le m \le 10^{15}
  • 0cd<m0 \le c \le d < m
  • 0a,b<m0 \le a, b < m
  • 0x+n10150 \le x + n \le 10^{15}
  • a(x+n)+b1015a \cdot (x + n) + b \le 10^{15}

입력으로 주어지는 모든 수는 음이 아닌 정수이다.

출력

각 테스트 케이스마다 c(a(x+i)+b)modmdc \le (a \cdot (x + i) + b) \bmod m \le d 를 만족하는 ii (0in0 \le i \le n)의 개수를 한 줄에 하나씩 출력한다.