MO

면접 대비

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

요약
1차원 바둑판에서 번갈아 돌을 놓으며 상대 돌을 양쪽에서 감싸면 제거하는 규칙을 시뮬레이션해 남은 흑돌과 백돌 수를 구하는 문제입니다.
난이도

보통10점 중 4점

유형
시뮬레이션, 배열, 구현
정답자
아직 제출이 없습니다

문제

미르코와 슬라브코는 일차원 판에서 하는 미니 바둑 게임 MO를 한다. 판은 왼쪽부터 오른쪽까지 1번부터 P번까지 번호가 붙은 P개의 칸으로 이루어져 있다.

미르코는 흰 돌을 사용하고 먼저 둔다. 슬라브코는 검은 돌을 사용하며 두 번째로 둔다. 처음에는 모든 칸이 비어 있다. 두 사람은 번갈아 가며 입력으로 주어진 빈 칸에 자기 색의 돌 하나를 놓는다.

새로 놓은 돌과 같은 색의 기존 돌 사이에 상대 색 돌들만 연속해서 놓여 있으면, 그 사이의 상대 돌들은 판에서 제거된다. 이 판정은 새로 놓은 돌의 왼쪽과 오른쪽 각각에 대해 일어난다.

모든 수를 둔 뒤 판에 남아 있는 흰 돌의 수와 검은 돌의 수를 구하라.

입력

첫째 줄에 판의 칸 수 P와 전체 수의 개수 N이 공백으로 구분되어 주어진다. (1 ≤ P ≤ 100, 1 ≤ N ≤ 1000)

다음 N개의 줄에는 각 수를 둘 칸의 번호가 게임 순서대로 하나씩 주어진다. 각 번호는 그 차례의 플레이어가 돌을 놓는 빈 칸이다. 첫 번째 수는 흰 돌, 두 번째 수는 검은 돌이며 이후에도 두 색이 번갈아 둔다.

출력

게임이 끝난 뒤 판에 남아 있는 흰 돌의 수와 검은 돌의 수를 공백 하나로 구분하여 한 줄에 출력한다.

예제3

  1. 예제 1

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

    입력
    5 6
    1
    4
    5
    2
    3
    2
    
    예상 출력
    3 1
    
  3. 예제 3

    입력
    6 8
    1
    2
    5
    3
    4
    6
    2
    3
    
    예상 출력
    2 2