골프 봇

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

골프를 좋아하는가? 나는 골프가 싫다. 너무 싫어서 절대 실수하지 않는 골프 로봇을 만들기로 했다. 공 위에 로봇을 올려 두고 방향과 거리만 고르면, 로봇이 공을 정확히 쳐서 홀에 넣는다. 그러면 골프를 다시 칠 일은 없다.

안타깝게도 계획대로 되지 않았다. 그린에 서서 첫 스트로크를 준비하다가, 로봇에 달린 거리 조절 다이얼에 모든 거리가 들어 있지는 않다는 사실을 알았다. 그래도 방법은 남아 있다. 스트로크를 두 번까지 쓸 수 있다.

지금 이 로봇으로 두 번 이하의 스트로크로 넣을 수 있는 홀은 몇 개인가?

입력

첫째 줄에 골프 봇이 칠 수 있는 거리의 가짓수 NN이 주어진다. 다음 NN개 줄에는 다이얼의 ii번째 위치에 적힌 거리 kik_i가 한 줄에 하나씩 주어진다.

그다음 줄에는 이 코스의 홀 개수 MM이 주어진다. 다음 MM개 줄에는 골프 봇에서 jj번째 홀까지의 거리 djd_j가 한 줄에 하나씩 주어진다.

출력

골프 봇이 넣을 수 있는 홀의 개수를 한 줄에 출력한다.

골프 봇은 홀을 일부러 지나쳐 친 다음 반대 방향으로 치지 못한다. 따라서 jj번째 홀에 공을 넣으려면 다이얼의 거리 하나가 djd_j와 같거나, 다이얼의 거리 두 개의 합이 djd_j와 같아야 한다. 두 번 칠 때 같은 거리를 두 번 골라도 된다.

제한

  • 1N,M2000001 \le N, M \le 200000
  • 1ki,dj2000001 \le k_i, d_j \le 200000

힌트

골프 봇이 1, 3, 5 세 거리를 칠 수 있고 홀이 각각 거리 2, 4, 5, 7, 8, 9에 있다고 하자. 이때 넣을 수 있는 홀은 네 개다.

  • 거리 2인 홀은 1을 두 번 쳐서 넣는다.
  • 거리 4인 홀은 3과 1을 한 번씩 쳐서 넣는다. 순서는 상관없다.
  • 거리 5인 홀은 5를 한 번 쳐서 넣는다.
  • 거리 8인 홀은 3과 5를 한 번씩 쳐서 넣는다.

거리 7인 홀과 거리 9인 홀은 어떻게 해도 넣지 못한다.