약수 놀이

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

요약
각 질의 (x,A,B,C)마다 |x-y| <= A, |D(x)-D(y)| <= B, |S(x)-S(y)| <= C를 만족하는 y <= N의 개수를 센다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 누적 합, 정렬
정답자
아직 제출이 없습니다

문제

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의 총합)

이라 정의하자.

예를 들면

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

Bert가 공부하던 모습을 지켜보던 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,17y \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∈10,12,13,14,15,16,17y \in \\{10, 12, 13, 14, 15, 16, 17\\} 이외에도 y∈11,18y \in \\{11, 18\\} 일 때 상기한 세 조건을 모두 만족하므로 답은 9가 된다.
  • x=15,A=5,B=1,C=20x = 15, A = 5, B = 1, C = 20 인 경우: y∈10,14,15,16y \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,15y \in \\{14, 15\\} 가 조건을 모두 만족시킨다 - 이 퀴즈의 답은 2이다.
  • x=14,A=1,B=1,C=20x = 14, A = 1, B = 1, C = 20 인 경우: y∈14,15y \in \\{14, 15\\} 가 조건을 모두 만족시킨다 - 이 퀴즈의 답은 2이다.
  • x=15,A=5,B=2,C=20x = 15, A = 5, B = 2, C = 20 인 경우: y∈10,11,…,19,20y \in \\{10, 11, \dots, 19, 20\\} 가 조건을 모두 만족시킨다 - 이 퀴즈의 답은 11 이다.

Alice는 NN의 값은 고정시켜둔채로 Bert에게 MM개의 퀴즈를 내고 싶어한다 - 편의상 ii 번째 퀴즈는 (x_i,A_i,B_i,C_i)(x\_i, A\_i, B\_i, C\_i) 네 개의 정수로 표현하자. 입력으로 N,MN, M, 그리고 (x_i,A_i,B_i,C_i)(x\_i, A\_i, B\_i, C\_i) 값들이 주어졌을 때, 각 퀴즈의 정답을 구해보자 (편의상 ii 번째 퀴즈의 정답을 E_iE\_i 라 하자).

입력

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

각 테스트 케이스의 첫 줄에는 NN 과 MM 이 공백으로 구분되어 주어진다. 다음 MM 줄에 걸쳐 각 줄에 4개의 정수 x_i,A_i,B_i,C_ix\_i, A\_i, B\_i, C\_i가 공백으로 구분되어 주어지는데 이는 ii 번째 퀴즈를 표현한다.

출력

각 테스트 케이스의 정답인 E_1,E_2,…,E_ME\_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≤x_i≤N1 \le x\_i \le N
    • 0≤A_i≤N0 \le A\_i \le N
    • 0≤B_i≤50 \le B\_i \le 5
    • 0≤C_i≤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