만드는 중입니다

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

랜덤 숫자

시간 제한5초메모리 제한512 MB

요약
무작위 정수 배열 a와 섞인 배열 b가 주어질 때, b가 (a_i + k) mod m의 다중집합이 되도록 m과 k를 구합니다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 해시맵
정답자
아직 제출이 없습니다

문제

유우카에게 nn개의 정수 a_1,a_2,…,a_na\_1, a\_2, \dots, a\_n이 있다. 이 정수들은 각각 1 이상 101810^{18} 이하의 범위에서 균등하고 독립적으로 생성되었다.

유우카가 정수 mm을 고른다. 다음으로 0 이상 (m−1)(m - 1) 이하의 정수 kk를 균등하게 생성한다. 그 뒤 유우카는 모든 a_ia\_i를 (a_i+k) mod m(a\_i + k) \bmod m으로 바꾼다. 마지막으로 정수들을 무작위로 섞는다. 섞은 결과가 b_1,b_2,…,b_nb\_1, b\_2, \ldots, b\_n이다.

a_1,…,a_na\_1, \dots, a\_n과 b_1,…,b_nb\_1, \dots, b\_n이 주어질 때, mm과 kk의 값을 구하라.

입력

첫째 줄에 정수 nn이 주어진다 (105≤n≤2⋅10510^5 \le n \le 2 \cdot 10^5).

둘째 줄에 nn개의 정수 a_1,…,a_na\_1, \dots, a\_n이 주어진다. 이 값들은 1≤a_i≤10181 \le a\_i \le 10^{18}을 만족하도록 무작위로 생성된 것이다.

셋째 줄에 nn개의 정수 b_1,…,b_nb\_1, \dots, b\_n이 주어진다. 0≤b_i<10100 \le b\_i < 10^{10}이다.

0≤k<m≤10100 \le k < m \le 10^{10}을 만족하는 해가 존재함이 보장된다.

출력

mm과 kk를 한 줄에 공백으로 구분하여 출력한다. 답이 여러 개이면 그중 아무거나 출력해도 된다.

힌트

문제의 예시는 출력 형식을 보여 주기 위한 것이다. 이 예시는 제약 조건을 어기므로 시스템 테스트에는 포함되지 않는다 (1번 테스트는 다른 테스트이다).

예제1

  1. 예제 1

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