Coding is the closest thing we have to a surperpower

2910 : 综合练习-读代码回答问题
描述

你的任务是求得以下代码的值:

#include <stdio.h>
 

int cases, caseno;

int n, K, MOD;

int A[1001];
 

int main() {

scanf("%d", &cases);

while( cases-- ) {

scanf("%d %d %d", &n, &K, &MOD);

int i, i1, i2, i3, ... , iK;

for( i = 0; i < n; i++ ) scanf("%d", &A[i]);

int res = 0;

for( i1 = 0; i1 < n; i1++ ) {

for( i2 = 0; i2 < n; i2++ ) {

for( i3 = 0; i3 < n; i3++ ) {

...

for( iK = 0; iK < n; iK++ ) {

res = ( res + A[i1] + A[i2] + ... + A[iK] ) % MOD;

}

...

}

}

}

printf("Case %d: %d\n", ++caseno, res);

}

return 0;

}

注意:直接实现代码可能会超时

实际上,代码是关于:给定三个整数 n,K,MOD 和 n 个整数:A_0,A_1,A_2 ... A_{n-1},您必须编写 K 个嵌套循环并计算所有 A_i 的总和,其中 i 是任何嵌套循环变量的值。

输入

输入以整数 T(1≤T≤100)开始,表示测试用例的数量。

每个测试用例第一行将包含三个整数 n (1 ≤ n ≤ 1000), K (1 ≤ K < 2^{31}), MOD (1 ≤ MOD ≤ 35000)

然后接下来一行包括 n 个数字,分别是 A_i,其大小都在int范围内。

输出

共有 T 行。对于每组测试数据,输出一行信息 "Case t: A" (不含引号)。

 其中 t 表示对应的是第几组测试数据,A表示当前测试数据执行代码后的值。

样例

输入

2
3 1 35000
1 2 3
2 3 35000
1 2

输出

Case 1: 6
Case 2: 36
标签
语言:
主题: