골프를 좋아하는가? 나는 골프가 싫다. 너무 싫어서 절대 실수하지 않는 골프 로봇을 만들기로 했다. 공 위에 로봇을 올려 두고 방향과 거리만 고르면, 로봇이 공을 정확히 쳐서 홀에 넣는다. 그러면 골프를 다시 칠 일은 없다.
안타깝게도 계획대로 되지 않았다. 그린에 서서 첫 스트로크를 준비하다가, 로봇에 달린 거리 조절 다이얼에 모든 거리가 들어 있지는 않다는 사실을 알았다. 그래도 방법은 남아 있다. 스트로크를 두 번까지 쓸 수 있다.
지금 이 로봇으로 두 번 이하의 스트로크로 넣을 수 있는 홀은 몇 개인가?
첫째 줄에 골프 봇이 칠 수 있는 거리의 가짓수 N이 주어진다. 다음 N개 줄에는 다이얼의 i번째 위치에 적힌 거리 ki가 한 줄에 하나씩 주어진다.
그다음 줄에는 이 코스의 홀 개수 M이 주어진다. 다음 M개 줄에는 골프 봇에서 j번째 홀까지의 거리 dj가 한 줄에 하나씩 주어진다.
골프 봇이 넣을 수 있는 홀의 개수를 한 줄에 출력한다.
골프 봇은 홀을 일부러 지나쳐 친 다음 반대 방향으로 치지 못한다. 따라서 j번째 홀에 공을 넣으려면 다이얼의 거리 하나가 dj와 같거나, 다이얼의 거리 두 개의 합이 dj와 같아야 한다. 두 번 칠 때 같은 거리를 두 번 골라도 된다.
골프 봇이 1, 3, 5 세 거리를 칠 수 있고 홀이 각각 거리 2, 4, 5, 7, 8, 9에 있다고 하자. 이때 넣을 수 있는 홀은 네 개다.
거리 7인 홀과 거리 9인 홀은 어떻게 해도 넣지 못한다.