\(D\) で割ったあまりが異なるアメーバ同士は合体することはないので, \(D\) で割ったあまりごとにグループ化して考える. その際, \(Y_i = \floor{X_i/D}\) で考える.

\(T\) 秒後にはもともと \(Y_i\) にいたアメーバは 区間 \([Y_i-T, Y_i+T]\) に広がる.

区間同士の結合を行うことでアメーバの広がってる区間を列挙でき, それぞれのアメーバの数を計算できる.