외톨이 1
시간 제한3초메모리 제한512 MB
이진수 n의 연속 구간 길이가 주어질 때, 1부터 n까지의 UFO 총합 sks(n)을 이진수 연속 구간 길이로 출력한다.
문제
가 과 로 이루어진 수열이라고 하자. 수열 에서 외톨이 1(UFO)이란, 수열에 등장하는 가운데 양 끝(가장 앞 또는 가장 뒤)에 있으면서 다른 어떤 과도 인접하지 않는 을 말한다. 예를 들어 수열 에는 UFO가 두 개, 수열 에는 UFO가 없으며, 수열 에는 UFO가 정확히 한 개 있다.
부터 까지의 모든 수를 이진법으로 나타냈을 때 등장하는 UFO의 총 개수를 이라고 하자. 예를 들어 , , , 이다.
매우 큰 수를 다루므로 수를 간결하게 표현한다. 양의 정수 의 이진 표현 는 항상 로 시작한다. 이때 의 간결 표현 는 같은 숫자가 연속으로 이어지는 각 구간의 길이를 순서대로 나열한 양의 정수 수열이다. 예를 들면 다음과 같다.
이 주어질 때 을 구하는 프로그램을 작성하라.
입력
첫째 줄에 양의 정수 의 간결 표현의 길이를 나타내는 정수 ()가 주어진다. 둘째 줄에는 개의 정수 ()가 공백 하나로 구분되어 주어지며, 이 수열이 의 간결 표현이다. , 즉 임이 보장된다.
출력
두 줄을 출력한다. 첫째 줄에는 하나의 양의 정수 을 출력한다. 둘째 줄에는 개의 양의 정수 을 공백 하나로 구분하여 출력하며, 이 수열은 의 간결 표현을 이룬다.