만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

약수 놀이

시간 제한2초메모리 제한1024 MB

요약
각 질의마다 1 이상 N 이하인 y 중 x와의 차이가 A 이하이고, 약수 개수 차이가 B 이하이며, 약수 합 차이가 C 이하인 y의 개수를 구합니다.
난이도

보통10점 중 6점

유형
정수론, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

Bert는 최근 수학 시간에 약수에 대해 배웠다. 임의의 자연수 x≥1x \ge 1에 대하여 다음과 같이 정의하자.

  • D(x)D(x): xx의 약수의 개수 (즉, 11 이상 xx 이하의 자연수 yy 중 xx를 나누어 떨어지게 하는 yy의 개수)
  • S(x)S(x): xx의 약수의 총합 (즉, 11 이상 xx 이하의 자연수 yy 중 xx를 나누어 떨어지게 하는 yy의 총합)

예를 들면 다음과 같다.

  • 11의 약수는 {1}\{1\}이므로 D(1)=1D(1) = 1, S(1)=1S(1) = 1이다.
  • 1010의 약수는 {1,2,5,10}\{1, 2, 5, 10\}이므로 D(10)=4D(10) = 4, S(10)=18S(10) = 18이다.
  • 1212의 약수는 {1,2,3,4,6,12}\{1, 2, 3, 4, 6, 12\}이므로 D(12)=6D(12) = 6, S(12)=28S(12) = 28이다.
  • 1414의 약수는 {1,2,7,14}\{1, 2, 7, 14\}이므로 D(14)=4D(14) = 4, S(14)=24S(14) = 24이다.
  • 1515의 약수는 {1,3,5,15}\{1, 3, 5, 15\}이므로 D(15)=4D(15) = 4, S(15)=24S(15) = 24이다.

Bert가 공부하는 모습을 지켜보던 누나 Alice는 다음과 같은 퀴즈를 냈다. Q(N,x,A,B,C)Q(N, x, A, B, C)는 11 이상 NN 이하인 자연수 yy 중 아래 세 조건을 모두 만족하는 자연수의 개수이다.

  1. ∣x−y∣≤A|x - y| \le A
  2. ∣D(x)−D(y)∣≤B|D(x) - D(y)| \le B
  3. ∣S(x)−S(y)∣≤C|S(x) - S(y)| \le C

예를 들어 N=18N = 18인 경우를 생각해 보자.

  • x=15,A=5,B=2,C=10x = 15, A = 5, B = 2, C = 10인 경우: y∈{10,12,13,14,15,16,17}y \in \{10, 12, 13, 14, 15, 16, 17\}이 세 조건을 모두 만족하므로 답은 7이다.
  • x=15,A=5,B=2,C=20x = 15, A = 5, B = 2, C = 20인 경우: 위의 값들 외에 y∈{11,18}y \in \{11, 18\}도 세 조건을 모두 만족하므로 답은 9이다.
  • x=15,A=5,B=1,C=20x = 15, A = 5, B = 1, C = 20인 경우: y∈{10,14,15,16}y \in \{10, 14, 15, 16\}이 세 조건을 모두 만족하므로 답은 4이다.

또 다른 예로 N=30N = 30인 경우를 생각해 보자.

  • x=14,A=0,B=0,C=0x = 14, A = 0, B = 0, C = 0인 경우: y=14y = 14만 조건을 모두 만족하므로 답은 1이다.
  • x=14,A=1,B=0,C=1x = 14, A = 1, B = 0, C = 1인 경우: y∈{14,15}y \in \{14, 15\}가 조건을 모두 만족하므로 답은 2이다.
  • x=14,A=1,B=1,C=20x = 14, A = 1, B = 1, C = 20인 경우: y∈{14,15}y \in \{14, 15\}가 조건을 모두 만족하므로 답은 2이다.
  • x=15,A=5,B=2,C=20x = 15, A = 5, B = 2, C = 20인 경우: y∈{10,11,…,19,20}y \in \{10, 11, \dots, 19, 20\}이 조건을 모두 만족하므로 답은 11이다.

Alice는 NN을 고정한 채로 Bert에게 MM개의 퀴즈를 내고 싶어 한다. ii번째 퀴즈는 네 정수 (xi,Ai,Bi,Ci)(x_i, A_i, B_i, C_i)로 나타낸다. NN, MM과 각 (xi,Ai,Bi,Ci)(x_i, A_i, B_i, C_i)가 주어졌을 때, 각 퀴즈의 답 EiE_i를 구하여라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 공백으로 구분된 NN과 MM이 주어진다. 이어서 MM개의 줄에 걸쳐 공백으로 구분된 네 정수 xi,Ai,Bi,Cix_i, A_i, B_i, C_i가 한 줄에 하나씩 주어지며, 이는 ii번째 퀴즈를 나타낸다.

출력

각 테스트 케이스마다 답 E1,E2,…,EME_1, E_2, \dots, E_M을 공백으로 구분하여 한 줄에 출력한다.

제한

  • 1≤T≤201 \le T \le 20
  • 1≤N≤200,0001 \le N \le 200,000
  • 1≤M≤10,0001 \le M \le 10,000
  • 1≤i≤M1 \le i \le M인 모든 ii에 대하여:
    • 1≤xi≤N1 \le x_i \le N
    • 0≤Ai≤N0 \le A_i \le N
    • 0≤Bi≤50 \le B_i \le 5
    • 0≤Ci≤1,000,0000 \le C_i \le 1,000,000

예제1

  1. 예제 1

    입력
    3
    30 4
    14 0 0 0
    14 1 0 1
    14 1 1 20
    15 5 2 20
    18 3
    15 5 1 20
    15 5 2 10
    15 5 2 20
    10 3
    8 0 0 0
    1 0 0 0
    2 10 3 10
    
    예상 출력
    1 2 2 11
    4 7 9
    1 1 8