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

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

소 연결하기

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

요약
원점에서 출발해 N마리(최대 10마리) 소의 위치에서 각각 정확히 한 번씩 방향을 바꾸며 모든 소를 방문한 뒤 원점으로 돌아오는 축에 평행한 경로의 수를 센다.
난이도

보통10점 중 6점

유형
백트래킹, 기하, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

농부 존은 매일 농장을 돌아다니며 자신의 소 NN마리(1≤N≤101 \le N \le 10)의 상태를 확인합니다.

각 소의 위치는 2차원 평면 위의 한 점으로 주어지고, 농부 존은 원점 (0,0)(0, 0)에서 출발합니다. 그는 좌표축과 평행한 방향, 즉 북·남·동·서로만 이동합니다. 이동 방향은 오직 소가 있는 위치에서만 바꿀 수 있으며, 원하면 방향을 바꾸지 않고 소의 위치를 그대로 지나갈 수도 있습니다(횟수 제한은 없습니다). 방향을 바꿀 때에는 9090도 또는 180180도로 회전합니다. 모든 소를 방문한 뒤 경로는 반드시 원점으로 돌아와야 합니다.

각 소의 위치에서 방향을 정확히 한 번씩 바꾸는 서로 다른 경로의 개수를 구하세요. 어떤 경로와 그 경로를 거꾸로 걸은 경로는 서로 다른 두 경로로 셉니다.

입력

  • 첫째 줄에 정수 NN이 주어집니다.
  • 다음 NN개의 줄에는 각각 한 소의 xx 좌표와 yy 좌표가 공백으로 구분되어 주어집니다(각 좌표는 −1000…1000-1000 \ldots 1000 범위의 정수입니다).

출력

  • 농부 존이 택할 수 있는 서로 다른 경로의 개수를 한 줄에 출력합니다. 유효한 경로가 없으면 00이 될 수 있습니다.

힌트

예시에서는 (0,1)(0,1), (2,1)(2,1), (2,0)(2,0), (2,−5)(2,-5)에 소 44마리가 있습니다. 유효한 경로는 두 가지로, 농부 존은 소의 위치에서 (0,1)→(2,1)→(2,−5)→(2,0)(0,1) \to (2,1) \to (2,-5) \to (2,0) 순서로 방향을 바꾸거나 그 정반대 순서로 방향을 바꿀 수 있습니다. 경로와 그 역방향 경로를 따로 세므로 답은 22입니다.

예제1

  1. 예제 1

    입력
    4
    0 1
    2 1
    2 0
    2 -5
    
    예상 출력
    2