A. 固定差值的平方和数列

固定差值的平方和数列

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

小 W 准备了一份数字列表,列表中的数依次排开,后一个数总比前一个数大一个固定的值。他希望所有数的和恰好等于某个整数 nn 的平方。

具体来说,你需要找到一个整数序列 a1,a2,…,aka_1, a_2, \dots, a_k,满足对任意 1≤i<k1 \le i < k 均有 ai+1−ai=da_{i+1} - a_i = d(dd 为常数),并且 ∑i=1kai=n2\sum_{i=1}^k a_i = n^2。

现在给定整数 nn,请输出任意一组满足要求的 a1,d,ka_1, d, k。题目保证 nn 满足 1≤n≤1081 \le n \le 10^8。输出的三个整数 a1,d,ka_1, d, k 的绝对值均不能超过 101010^{10}。

输入描述

输入只有一行,包含一个整数 nn,表示目标和的平方底数。

输出描述

输出一行三个整数,用空格分隔,依次表示序列的第一个数 a1a_1、相邻元素的固定差值 dd 以及序列的长度 kk。若有多组解,输出任意一组均可。

样例1

输入

5

输出

1 2 5

说明

使用经典结论:前 k 个奇数的和等于 k2k^2。 这里取 k=n=‘5‘k=n=`5`,公差 d=‘2‘d=`2`,首项 a1=‘1‘a_1=`1`,序列为 1,3,5,7,91, 3, 5, 7, 9,其和为 1+3+5+7+9=25=521+3+5+7+9=25=5^2。

样例2

输入

1

输出

1 2 1

说明

当 n=‘1‘n=`1` 时,依然可以利用奇数和公式:取 a1=‘1‘a_1=`1`, d=‘2‘d=`2`, k=‘1‘k=`1`。 序列仅有 1,和等于 1,即 121^2。

样例3

输入

10

输出

1 2 10

说明

同样利用奇数和公式:前 10 个奇数之和为 102=10010^2=100。 取 a1=‘1‘a_1=`1`, d=‘2‘d=`2`, k=‘10‘k=`10`,序列 1,3,…,191, 3, \ldots, 19,和为 100。

样例4

输入

3

输出

9 0 1

说明

直接取 k=‘1‘k=`1`,则 a1=n2=9a_1 = n^2 = 9,此时 dd 可为任意值(此处取 0)。 序列只有 9,和等于 9,即 323^2。这也是一种平凡解。

真题模拟赛第四场|Ant|2023.04.04算法岗笔试

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2023-4-14 19:00
End at
2023-4-14 20:20
Duration
1.3 hour(s)
Host
Partic.
81