RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 KOI00113

주사위 탑 쌓기

설명

상훈이는 N개의 정육면체 주사위를 가지고 있다. 주사위는 순서대로 1번 주사위, 2번 주사위, ···, N번 주사위라고 부른다.

모든 주사위의 각 면에는 1 이상 6 이하의 정수가 하나씩 적혀 있다. 하나의 주사위에서 서로 다른 두 면에 적힌 수는 항상 다르며, 서로 마주 보는 두 면에 적힌 수의 합은 항상 7이다.

상훈이는 N개의 주사위를 사용하여 주사위 탑 쌓기를 하려고 한다. 구체적인 과정은 다음과 같다.

  1. 바닥에 N개의 주사위를 모두 굴린다.
  2. 각 주사위의 윗면에 적힌 수를 기록한다. 1번 주사위부터 N번 주사위까지 윗면에 적힌 수를 순서대로 A₁, A₂, ···, Aₙ이라고 한다.
  3. 바닥에 놓인 주사위 중 1개 이상을 선택하여 책상 위에 새로운 탑 하나를 만든다. 주사위를 바닥에서 들어 옮길 수는 있지만, 주사위의 방향을 바꾸어서는 안 된다. 선택한 주사위들을 쌓는 순서는 자유롭게 정할 수 있고, 이 주사위들은 모두 수직으로 일렬로 쌓아야 한다. 이때, 서로 맞닿은 두 면에 적힌 수는 같아야 한다.
  4. 바닥에 남은 주사위가 없을 때까지 과정 3. 을 반복한다.

예를 들어, 주사위 탑 쌓기는 다음과 같이 진행될 수 있다.

  1. 상훈이가 바닥에 4개의 주사위를 굴렸더니, 1번 주사위부터 4번 주사위까지 윗면에 적힌 수가 각각 3, 3, 5, 4였다.
  2. 상훈이는 바닥에서 1번, 2번, 4번 주사위를 선택했다. 그 후, 아래에서부터 1번, 4번, 2번 주사위 순서가 되도록 탑을 쌓았다. 1번 주사위의 윗면과 4번 주사위의 아랫면에는 모두 3이 적혀 있으며, 두 면은 서로 맞닿아 있다. 또한, 4번 주사위의 윗면과 2번 주사위의 아랫면에는 모두 4가 적혀 있으며, 두 면은 서로 맞닿아 있다.
  3. 상훈이는 바닥에 남아 있는 3번 주사위를 선택하여, 주사위 하나로 이루어진 탑을 쌓았다.
  4. 바닥에 남은 주사위가 없으므로 주사위 탑 쌓기를 종료한다. 상훈이는 총 2개의 탑을 만들었다.

상훈이는 탑을 쌓는 방법을 적절히 정하여, 만들어지는 탑의 수를 최소화하려고 한다. N개의 주사위를 굴린 후 각 주사위의 윗면에 적힌 수가 주어질 때, 만들어지는 탑의 수의 최솟값을 구하라.

제약

• 주어지는 모든 수는 정수이다.
• 2 ≤ N ≤ 200 000
• 정수 i (1 ≤ i ≤ N)에 대하여 1 ≤ A_i ≤ 6

입력 형식

첫 줄에 정수 N이 주어진다.

그다음 줄에는 N개의 정수 A₁, A₂, ···, Aₙ이 공백으로 구분되어 차례대로 주어진다.

출력 형식

첫 줄에, 상훈이가 탑을 쌓는 방법을 적절히 정했을 때 만들어지는 탑의 수의 최솟값을 출력한다.

서브태스크
서브태스크점수설명

N = 2

8점

N = 2

A_i in {3,4}

28점

A_i in {3,4}

all face-counts distinct

31점

all face-counts distinct

no additional constraints

33점

no additional constraints

예제 1
입력
4
3 3 5 4
출력
2
예제 2
입력
2
3 4
출력
1
예제 3
입력
5
1 1 6 1 1
출력
3
문제 정보

anthony0506 작성

출처 KOI

평가 및 의견

주사위 탑 쌓기

개요
출제자 난이도 Silver IV 실버 IV 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

주사위 탑 쌓기

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
이 문제는 다음 언어만 허용합니다: C++20, C++17, Python 3, Python 3 (PyPy)
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8