UVA1386 Cellular Automaton

题目描述

英文版题面:[UVA1386 Cellular Automaton](https://uva.onlinejudge.org/external/13/p1386.pdf) 有一个细胞自动机,它是一个由 n 个元素组成的环,每个元素的值都**必须是 $\pmod {m}$ 意义下的**。现在你需要对这个环进行 k 次操作,每次操作你需要把这个环内每个元素更新成**与它距离不超过 d 的所有元素之和**(包括自己)。注:每一个新的元素也必须是 $\pmod {m}$ 意义下的。 下图显示了一个五元素细胞自动机(样例)的一次操作: ![](https://cdn.luogu.org/upload/pic/40519.png)

输入格式

对于每一个测试点,有**多组数据**。每组测试数据由两行组成: 第一行包含四个整数 n , m , d , k (含义见题面); 第二行包含 n 个整数表示一个环上的所有元素。

输出格式

每组数据输出一行,即在 k 次操作后圆环上每个元素的值(用空格隔开) 温馨小提示:**每一行最后不能有多余空格**! ## 样例输入: 5 3 1 1 1 2 2 1 2 5 3 1 10 1 2 2 1 2 ## 输出样例: 2 2 2 2 1 2 0 0 2 2

说明/提示

$ 1 \leq n \leq 500 $ ; $ 1 \leq m \leq 1000000 $ ; $0 \leq d \leq \frac{n}{2}$ ;$ 1 \leq k \leq 10000000 $ ;