삼각형 게임

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

요약
번호가 적힌 삼각형 여섯 개를 맞닿은 변의 숫자가 같도록 육각형으로 배치하고, 바깥 여섯 변 숫자의 합이 최대가 되도록 한다.
난이도

보통10점 중 6점

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

문제

삼각형 게임은 세 변에 각각 숫자가 적힌 삼각형 여섯 개로 시작한다. 위 그림이 그런 예다. 삼각형을 밀거나 돌려서 육각형 하나를 만들 수 있는데, 이웃한 두 삼각형이 맞댄 변에 적힌 숫자가 서로 같아야 그 육각형이 유효하다. 삼각형을 뒤집는 것은 허용하지 않는다. 아래 그림은 같은 삼각형 여섯 개로 만든 유효한 육각형 두 개다.

유효한 육각형의 점수는 바깥쪽 여섯 변에 적힌 숫자의 합이다.

삼각형 여섯 개가 주어질 때 얻을 수 있는 가장 높은 점수를 구하라.

입력

입력은 데이터 집합 하나 이상으로 이루어진다. 데이터 집합 하나는 여섯 줄이고, 각 줄에는 1 이상 100 이하의 정수 세 개가 공백으로 구분되어 주어진다. 한 줄의 세 수는 삼각형 하나의 세 변에 적힌 숫자를 시계 방향 순서로 나열한 것이다. 데이터 집합 사이에는 별표 하나만 있는 줄(*)이 들어가고, 마지막 데이터 집합 뒤에는 달러 기호 하나만 있는 줄($)이 들어간다. 데이터 집합은 200개를 넘지 않는다.

출력

데이터 집합마다 한 줄씩 출력한다. 유효한 육각형을 만들 수 없으면 none을 출력하고, 만들 수 있으면 가장 높은 점수를 출력한다.

예제2

  1. 예제 1

    입력
    1 4 20
    3 1 5
    50 2 3
    5 2 7
    7 5 20
    4 7 50
    *
    10 1 20
    20 2 30
    30 3 40
    40 4 50
    50 5 60
    60 6 10
    *
    10 1 20
    20 2 30
    30 3 40
    40 4 50
    50 5 60
    10 6 60
    $
    
    예상 출력
    152
    21
    none
    
  2. 예제 2

    입력
    1 1 1
    1 1 1
    1 1 1
    1 1 1
    1 1 1
    1 1 1
    $
    
    예상 출력
    6