#include #include int i, j, k, C, S, d, last; int tab[110][110]; int main(void) { scanf("%d", &d); for(; d > 0; d--) { scanf("%d %d", &S, &C); for(i = 0; i < S; i++) scanf("%d", &tab[0][i]); j = S; for(i = 1; i <= 108; i++) { last = 0; j--; for(k = 0; k < j; k++) { tab[i][k] = tab[i - 1][k + 1] - tab[i - 1][k]; last |= tab[i][k]; } if (last == 0) break; } // memset((char*)&tab[i][0], 0, sizeof(int) * 106); for(k = 0; k <= 105; k++) tab[i][k] = 0; i--; j++; for(; i >= 0; i--) { for(k = j; k <= C + S + 1; k++) tab[i][k] = tab[i][k - 1] + tab[i + 1][k - 1]; j++; } for(i = S; i < C + S - 1; i++) printf("%d ", tab[0][i]); printf("%d\n", tab[0][C + S - 1]); // for(j = 0; j < 5; j++) // for(i = 0; i < C + S; i++) // printf("%d ", tab[j][i]); // printf("\n\n"); } return 0; }