A. 好的三元组(triple)

    传统题 文件IO:triple 1000ms 256MiB

好的三元组(triple)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

读写要求

本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE

输入:triple.in

输出:triple.out

题目描述

给定一个非负整数 nnn0n \ge 0)。如果一个非负整数三元组 (a,b,c)(a, b, c) 满足 a+b+c=na + b + c = n,并且 digsum(a)+digsum(b)+digsum(c)=digsum(n)digsum(a) + digsum(b) + digsum(c) = digsum(n),则称其为“好三元组”。其中 digsum(x)digsum(x) 表示数字 xx 的各位数字之和。

例如,如果 n=26n = 26,则三元组 (4,12,10)(4, 12, 10) 是一个好三元组,因为 4+12+10=264 + 12 + 10 = 26,并且 4+(1+2)+(1+0)=2+64 + (1 + 2) + (1 + 0) = 2 + 6

你的任务是,对于给定的整数 nn,求出好三元组的数量。三元组中数字的顺序不同视为不同的三元组。例如,(4,12,10)(4, 12, 10)(10,12,4)(10, 12, 4) 被认为是两个不同的三元组。

输入格式

第一行输入一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。接下来每个测试用例一行,包含一个整数 nn0n1070 \le n \le 10^7)。

输出格式

对于每个测试用例,输出一个整数,表示对应 nn 的好三元组数量。三元组中数字的顺序不同视为不同的三元组。

输入输出样例

12
11
0
1
2
3
4
5
3141
999
2718
9999999
10000000
9
1
3
6
10
15
21
1350
166375
29160
1522435234375
3

说明/提示

在第一个样例中,好三元组有 (0,0,11)(0, 0, 11)(0,1,10)(0, 1, 10)(0,10,1)(0, 10, 1)(0,11,0)(0, 11, 0)(1,0,10)(1, 0, 10)(1,10,0)(1, 10, 0)(10,0,1)(10, 0, 1)(10,1,0)(10, 1, 0)(11,0,0)(11, 0, 0)

在第二个样例中,只有一个好三元组 (0,0,0)(0, 0, 0)

周赛#1022(div2)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-4-4 19:00
结束于
2026-4-4 20:30
持续时间
1.5 小时
主持人
参赛人数
22