Проще не бывает!

시간 제한6초메모리 제한1024 MB

요약
1, 1 2 1, 1 2 3 2 1처럼 블록을 이어 붙인 수열에서 n이 최대 10^500000일 때 n번째 항을 구한다.
난이도

보통10점 중 7점

유형
이분 탐색, 수학, 구현
정답자
아직 제출이 없습니다

문제

Вернувшись домой из школы, Иван долго думал о сегодняшнем занятии кружка по математике, на котором учитель рассказывал о бесконечных числовых последовательностях. В качестве одного из примеров рассматривалась следующая интересная последовательность целых положительных чисел: ,1⏟,1,2,1⏟,1,2,3,2,1⏟,1,2,3,4,3,2,1⏟,...\underbrace{\vphantom{,}1}, \underbrace{1, 2, 1}, \underbrace{1, 2, 3, 2, 1}, \underbrace{1, 2, 3, 4, 3, 2, 1}, ...

Учитель пояснил, что в этой последовательности каждое целое положительное число встречается бесконечное число раз. Однако Ивана заинтересовал ещё и другой вопрос: как определить, какое число находится в последовательности на месте под номером nn? На вопрос Ивана учитель ответил, что это очень просто, и предложил Ивану подумать над этой задачей самостоятельно.

Иван увлекается не только математикой, но и программированием, поэтому ему хочется реализовать алгоритм, который позволит быстро отвечать на поставленный вопрос для очень большого диапазона возможных nn. Помогите ему в этом.

입력

В первой строке входных данных находится одно целое число nn (1≤n≤10500,0001 \leq n \leq 10^{500\\,000}).

출력

Выведите одно целое число без пробелов и ведущих нулей --- nn-й элемент заданной последовательности.

힌트

Жюри олимпиады не гарантирует существование решения, выполняющегося на всех тестах с двукратным запасом времени работы.

예제1

  1. 예제 1

    입력
    7
    
    예상 출력
    3