아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

바늘

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

요약
간격이 1인 세 평행 장벽 각각에서 구멍을 하나씩 골라 한 직선 위에 놓이는 조합의 수를 센다.
난이도

보통10점 중 7점

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

문제

“바늘”은 북왕국에 사는 전설적인 암살자다. 알다시피 바늘은 매우 가늘고 길다. 무엇보다도 치명적으로 날카롭다. 북왕국의 왕은 바늘이 자신을 수없이 찔러 죽일지도 모른다는 생각에 사로잡혀 있다. 왕은 바늘을 체포하라는 긴급 명령을 내렸다. 그래서 바늘은 남왕국으로 도망치기로 했다.

아래 그림처럼 두 왕국의 국경은 세 개의 수평 장벽(선분)으로 이루어져 있고, 각 장벽에는 무한히 작은 구멍이 하나 이상 있다. (구멍은 그림에서 x로 표시되어 있다.) 세 장벽은 길이가 같고 그림처럼 수직으로 정렬되어 있다. 위쪽 장벽은 가운데 장벽보다 1만큼 위에 있고, 가운데 장벽은 아래쪽 장벽보다 1만큼 위에 있다. 두 왕국은 뚫을 수 없는 외벽으로 둘러싸여 있다. 각 왕국은 영토가 매우 넓어서 바늘은 왕국 안에서 자유롭게 움직이거나(평행 이동 또는 회전) 있을 수 있다. 바늘의 길이는 장벽 길이의 적어도 두 배이다. 바늘은 단단해서 휘어지지 않고 두께가 0이므로 구멍을 자유롭게 통과할 수 있지만, 구멍이 아닌 장벽의 다른 부분은 뚫을 수 없다.

북왕국에서 남왕국으로 가는 유일한 길은 세 장벽에서 각각 하나씩, 동시에 세 개의 구멍을 통과하는 것이다. 즉 바늘은 한 직선 위에 놓인 세 구멍을 통해서만 국경을 통과할 수 있다. 그림의 국경에는 북쪽에서 남쪽으로 가는 탈출 경로가 두 개 있다.

이 불쌍한 암살자를 위해, 북왕국에서 남왕국으로 갈 수 있는 탈출 경로의 수를 구하는 프로그램을 작성하라.

입력

프로그램은 표준 입력에서 입력을 읽는다. 입력은 여섯 줄로 이루어진다. 첫째 줄에는 위쪽 장벽의 구멍 수를 나타내는 양의 정수 nu가 주어진다. 둘째 줄에는 구멍의 x좌표를 나타내는 nu개의 정수가 공백으로 구분되어 주어진다. 셋째 줄과 넷째 줄은 가운데 장벽에 대한 것으로, 각각 가운데 장벽의 구멍 수 nm와 구멍의 x좌표 nm개가 주어진다. 다섯째 줄과 여섯째 줄은 아래쪽 장벽에 대한 것으로, 각각 아래쪽 장벽의 구멍 수 nl과 구멍의 x좌표 nl개가 주어진다. 1 ≤ nu, nm, nl ≤ 50,000이고 모든 구멍의 x좌표는 −30,000과 30,000 사이의 정수이다. 각 장벽의 구멍들은 x좌표가 모두 서로 다르다.

출력

프로그램은 표준 출력에 출력을 쓴다. 정확히 한 줄을 출력한다. 이 줄에는 북쪽에서 남쪽으로 가는 모든 가능한 경로의 수를 나타내는 음이 아닌 정수를 출력한다.

예제3

  1. 예제 1

    입력
    1
    1
    1
    2
    1
    1
    
    예상 출력
    0
    
  2. 예제 2

    입력
    3
    4 -3 2
    2
    4 1
    3
    -3 4 0
    
    예상 출력
    2
    
  3. 예제 3

    입력
    3
    -1 1 0
    3
    0 1 -1
    3
    0 -1 1
    
    예상 출력
    5