CF622A Infinite Sequence

题目描述

给你一个无穷整数序列:$1,1,2,1,2,3,1,2,3,4,1,2,3,4,5\cdots$。这个数列的建立过程如下:首先写出数字 $1$ ,然后写出从 $1$ 到 $2$ 的数字,然后写出从 $1$ 到 $3$ 的数字,然后写出从 $1$ 到 $4$ 的数字,以此类推。请注意,序列中包含的是数字,而不是数位。例如,数字 $10$ 首次出现在序列中的 $55$ 位置(元素的数字从 $1$ 开始)。 请找出序列中第 $n$ 位上的数字。

输入格式

一行包含一个整数 $n$($1\le n\le10^{14}$),表示要查找的数字的位置。 请注意,给定的数字太大,因此应该使用 $64$ 位整数类型来存储。在 C++ 中,您可以使用 `long long` 整数类型;在 Java 中,您可以使用 `long` 整数类型。

输出格式

输出序列中第 $n$ 位的元素(元素从 $1$ 开始编号)。