수열과 쿼리 HY

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

요약
고정된 수열에서 각 쿼리 m에 대해 A_i mod m의 최솟값과 최댓값을 구한다.
난이도

어려움10점 중 9점

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

문제

길이가 NN인 수열 A_1A\_1, A_2A\_2, ⋯\cdots, A_NA\_N이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • mm: A_1 mod mA\_1\bmod m, A_2 mod mA\_2\bmod m, ⋯\cdots, A_N mod mA\_N\bmod m 중 최솟값과 최댓값을 출력하라. (1≤m≤300,000)(1\le m\le 300\\, 000)

입력

첫째 줄에 수열의 길이 NN과 쿼리의 개수 QQ가 공백으로 구분되어 주어진다. (1≤N,Q≤300,000)(1\le N,Q\le 300\\, 000)

둘째 줄에 NN개의 정수 A_1A\_1, A_2A\_2, ⋯\cdots, A_NA\_N이 공백으로 구분되어 주어진다. (0≤A_i≤300,000)(0\le A\_i\le 300\\, 000)

셋째 줄부터 QQ개의 줄에 걸쳐 지문에서 설명한 쿼리가 한 줄에 하나씩 주어진다.

출력

QQ개의 줄마다 각 쿼리에서 구한 최솟값과 최댓값을 공백으로 구분하여 출력한다.

예제1

  1. 예제 1

    입력
    10 6
    9 55 2 4 26 37 81 16 34 46
    1
    5
    6
    7
    9
    12
    
    예상 출력
    0 0
    0 4
    1 4
    2 6
    0 8
    1 10