플래피 버드 스코어링

문제

플래피 버드는 장애물을 피해 최대한 멀리까지 도달하는 게임이다.

하나의 장애물을 피할 때마다 1점씩 점수를 얻게 된다. 게임에는 총 N개의 장애물이 존재하고, i번째 장애물은 두 개의 장애물로 표현된다. 상단 장애물 끝 지점의 위치는 Ai로 나타내어지고, 하단 장애물 끝 지점의 위치는 Bi로 나타내어진다.

플래피 버드 고수 세정이는 장애물이 어떤 식으로 주어지든 플래피 버드를 조작해 피할 수 있다. (단, 플래피 버드의 크기가 장애물의 틈새보다 클 경우에는 세정이도 장애물을 피하지 못한다.) 즉, 플래피 버드의 크기 w가 장애물의 틈새보다 클 경우에는 장애물을 피하지 못한다. 이때, 장애물을 피하지 못하면 게임이 바로 끝나게 된다.

여러 종류의 플래피 버드가 각 게임마다 주어질 때, 해당 플래피 버드를 가지고 몇 점까지 획득할 수 있는지 구하려고 한다.

세정이의 게임 스코어를 구해 출력해보자.

입력

첫 번째 줄에는 장애물의 개수 N이 주어진다. (1N250 000)

두 번째 줄에는 상단 장애물의 위치 Ai가 공백으로 구분되어 주어진다. (109Ai109)

세 번째 줄에는 하단 장애물의 위치 Bi가 공백으로 구분되어 주어진다. (109Bi109) (이때, 주어지는 입력은 BiAi임이 보장된다.)

네 번째 줄에는 플레이할 플래피 버드의 개수 Q가 주어진다. (1Q250,000)

다섯 번째 줄에는 각 플래피 버드의 크기 wi가 주어진다. (1wi109)

출력

각 플래피 버드별로 세정이가 얻을 수 있는 최대 게임 스코어를 각 줄마다 하나씩 출력한다.

예제 입력 1 복사

7
10 5 7 7 8 9 10
1 -1 2 -1 5 2 9
4
3 7 5 1

예제 출력 1 복사

6
1
4
7