헥사그램

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

요약
서로 다른 12개의 수를 헥사그램의 12개 꼭짓점에 배치해 6개의 직선 각각의 합이 같아지도록 하는 방법의 수를 회전과 반사를 제외하고 센다.
난이도

어려움10점 중 8점

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

문제

헥사그램은 뾰족한 끝이 여섯 개인 별(육각별)로, 다윗의 별이라고도 한다. 두 개의 정삼각형을 겹쳐 그린 모양이며 꼭짓점이 1212개 있다. 별의 뾰족한 끝에 해당하는 바깥쪽 점 66개와, 두 삼각형의 변이 교차하는 안쪽 점 66개이다. 또한 66개의 직선이 있다. 각 직선은 한 삼각형의 한 변 전체로, 바깥쪽 점에서 시작해 안쪽 점 22개를 지나 다른 바깥쪽 점에서 끝난다. 따라서 각 직선은 정확히 44개의 꼭짓점을 지나며, 모든 꼭짓점은 66개의 직선 중 정확히 22개 위에 놓인다.

서로 다른 1212개의 수가 주어졌을 때, 회전과 반사를 같은 것으로 볼 때 이 수들을 1212개의 꼭짓점에 배치하여 66개의 직선 각각에 놓인 네 수의 합이 모두 같아지도록 하는 방법은 몇 가지인가? 회전이나 반사만으로 서로 옮겨지는 두 배치는 같은 것으로 센다.

입력

여러 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 한 줄에 서로 다른 양의 정수 1212개가 공백 하나로 구분되어 주어지며, 각 수는 1,000,0001{,}000{,}000보다 작다. 입력은 1212개의 00으로 이루어진 줄로 끝나며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스에 대해, 66개의 직선의 합이 모두 같아지도록 수를 꼭짓점에 배치하는 방법의 수를 한 줄에 출력한다. 불필요한 공백을 출력하지 말고, 답 사이에 빈 줄을 넣지 않는다.

예제1

  1. 예제 1

    입력
    3 17 15 18 11 22 12 23 21 7 9 13
    1 2 3 4 5 6 7 8 9 10 11 13
    0 0 0 0 0 0 0 0 0 0 0 0
    
    예상 출력
    4
    0