예금

시간 제한3초메모리 제한256 MB

요약
예금 금액이 요청 기간으로 나누어지는 (예금, 요청) 쌍의 개수를 세는 문제이며, 최대 10^6까지 빈도수와 약수 열거로 계산합니다.
난이도

보통10점 중 4점

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

문제

금융 위기 상황에서 여러 중앙은행은 유동성을 공급하고 신용 시장을 지원하기 위해 투자은행과 저축은행 계좌에 많은 현금을 예치했다.

플랫랜드(Flatland)의 중앙은행은 시장에 nn개의 예금을 내놓으려고 한다. 각 예금은 금액 aia_i로 표현된다.

은행들은 시장에 예금 요청을 보낸다. 현재 요청은 mm개가 있으며, 각 요청은 기간 bib_i(일 단위)로 표현된다.

시장 규정에 따르면 모든 예금은 매일 같은 정수 금액으로 상환되어야 한다. 따라서 금액이 aa인 예금과 기간이 bb인 요청은 aa가 bb로 나누어떨어질 때에만 서로 매칭된다.

예금과 요청 정보가 주어질 때, 서로 매칭되는 (예금, 요청) 쌍의 개수를 구하여라.

입력

첫째 줄에 예금의 개수 nn이 주어진다 (1≤n≤100 0001 \le n \le 100\,000).

둘째 줄에 nn개의 정수 a1,a2,…,ana_1, a_2, \dots, a_n이 주어진다 (1≤ai≤1061 \le a_i \le 10^6).

셋째 줄에 요청의 개수 mm이 주어진다 (1≤m≤100 0001 \le m \le 100\,000).

넷째 줄에 mm개의 정수 b1,b2,…,bmb_1, b_2, \dots, b_m이 주어진다 (1≤bi≤1061 \le b_i \le 10^6).

출력

매칭되는 쌍의 개수를 정수 하나로 출력한다.

힌트

각 요청은 개별적으로 센다. 따라서 같은 기간이 여러 번 요청되면 한 예금이 그 기간과 여러 번 매칭될 수 있다.

예금이 3,4,5,63, 4, 5, 6이고 요청 기간이 1,1,2,31, 1, 2, 3인 경우, 매칭되는 (예금, 기간) 쌍은 (3,1)(3,1) 두 번, (3,3)(3,3), (4,1)(4,1) 두 번, (4,2)(4,2), (5,1)(5,1) 두 번, (6,1)(6,1) 두 번, (6,2)(6,2), (6,3)(6,3)으로 모두 1212개이다.

예제4

  1. 예제 1

    입력
    4
    3 4 5 6
    4
    1 1 2 3
    
    예상 출력
    12
    
  2. 예제 2

    입력
    1
    1
    1
    1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    2
    2 4
    2
    3 5
    
    예상 출력
    0
    
  4. 예제 4

    입력
    3
    7 10 3
    4
    1 1 1 1
    
    예상 출력
    12