D. Permutation with MAX Score

传统 1000 ms 1024 MiB
标准 IO
文本比较

题目描述

一个长度为 nn 的排列 pp 的得分计算方式如下:

  • 首先,你先确定一个正整数 kk
  • 然后,对于每一个大于等于 22 的位置 ii,计算排列 pp 中下标从 11i1i-1 的所有元素的和,计为 sis_i
  • 如果 pi=k×sip_i=k\times s_i,那么排列 pp 的得分加 11

给定一个整数 nn,假如你可以任意选择 kk,请你求出在所有长度为 nn 的排列中,得分最大的排列的得分是多少。

一个长度为 nn 的排列 pp 是指从 11nn 的每个整数恰巧在 pp 中出现一次,例如 [3,1,2][3,1,2][1][1] 都是排列,但是 [1,1,3][1,1,3][3,2,4][3,2,4] 都不是排列。

输入格式

第一行,一个整数 t(1t105)t(1\le t\le 10^5),代表数据组数。

对于每组数据,仅输入一个正整数 n(2n1018)n(2\le n\le 10^{18}),代表排列的长度。

由于这题输入数据的值比较大,所以你可能需要使用能够表示更大数据的数据类型,例如 C++\texttt{C++} 中的 long long\texttt{long long}

输出格式

对于每组数据,输出一个整数,代表在确定 kk 的情况下,长度为 nn 的排列的得分最多是多少。

样例

输入样例

6
2
3
7
916
5201314114514
1000000000000000000

输出样例

1
1
2
9
41
59

样例解释
对于样例第一组数据,选择 k=2k=2,此时得分最高的排列为 [1,2][1,{\color{red}2}],这个排列的得分为 11

对于样例第三组数据,选择 k=1k=1,此时得分最高的排列为 [2,1,3,6,7,4,5][2,1,{\color{red}3},{\color{red}6},7,4,5]

对于 i=2i=211×21\neq 1\times 2,所以这个位置不得分。

对于 i=3i=33=1×(2+1)3 = 1\times (2+1),所以这个位置得分。

对于 i=4i=46=1×(2+1+3)6 = 1\times (2+1+3),所以这个位置得分。

对于 i=5i=571×(2+1+3+6)7\neq 1\times (2+1+3+6),所以这个位置不得分。

对于 i=6i=641×(2+1+3+6+7)4\neq 1\times (2+1+3+6+7),所以这个位置不得分。

对于 i=7i=751×(2+1+3+6+7+4)5\neq 1\times (2+1+3+6+7+4),所以这个位置不得分。

最终,这个排列的得分为 0+1+1+0+0+0=20+1+1+0+0+0=2