We provide an alternative argument for part (b).
Assume again that there exist two distinct block-similar polynomials P(x) and Q(x) of degree n. Let R(x)=P(x)−Q(x) and S(x)=P(x)+Q(x). For brevity, we also denote the segment [(i−1)k+1,ik] by Ii, and the set {(i−1)k+1,(i−1)k+2,…,ik} of all integer points in Ii by Zi.
Step 1. We prove that R(x) has exactly one root in each segment Ii,i=1,2,…,n, and all these roots are simple.
Indeed, take any i∈{1,2,…,n} and choose some points p−,p+∈Zi so that
P(p−)=x∈ZiminP(x) and P(p+)=x∈ZimaxP(x)
Since the sequences of values of P and Q in Zi are permutations of each other, we have R(p−)=P(p−)−Q(p−)⩽0 and R(p+)=P(p+)−Q(p+)⩾0. Since R(x) is continuous, there exists at least one root of R(x) between p− and p+ - thus in Ii.
So, R(x) has at least one root in each of the n disjoint segments Ii with i=1,2,…,n. Since R(x) is nonzero and its degree does not exceed n, it should have exactly one root in each of these segments, and all these roots are simple, as required.
Step 2. We prove that S(x) is constant.
We start with the following claim.
Claim. For every i=1,2,…,n, the sequence of values S((i−1)k+1),S((i−1)k+2),…, S(ik) cannot be strictly increasing.
Proof. Fix any i∈{1,2,…,n}. Due to the symmetry, we may assume that P(ik)⩽Q(ik). Choose now p− and p+ as in Step 1. If we had P(p+)=P(p−), then P would be constant on Zi, so all the elements of Zi would be the roots of R(x), which is not the case. In particular, we have p+=p−. If p−>p+, then S(p−)=P(p−)+Q(p−)⩽Q(p+)+P(p+)=S(p+), so our claim holds.
We now show that the remaining case p−<p+ is impossible. Assume first that P(p+)>Q(p+). Then, like in Step 1, we have R(p−)⩽0,R(p+)>0, and R(ik)⩽0, so R(x) has a root in each of the intervals [p−,p+) and (p+,ik]. This contradicts the result of Step 1.
We are left only with the case p−<p+ and P(p+)=Q(p+) (thus p+ is the unique root of R(x) in Ii ). If p+=ik, then the values of R(x) on Zi\{ik} are all of the same sign, which is absurd since their sum is zero. Finally, if p−<p+<ik, then R(p−) and R(ik) are both negative. This means that R(x) should have an even number of roots in [p−,ik], counted with multiplicity. This also contradicts the result of Step 1.
In a similar way, one may prove that for every i=1,2,…,n, the sequence S((i−1)k+1), S((i−1)k+2),…,S(ik) cannot be strictly decreasing. This means that the polynomial ΔS(x)=S(x)−S(x−1) attains at least one nonnegative value, as well as at least one nonpositive value, on the set Zi (and even on Zi\{(i−1)k+1} ); so ΔS has a root in Ii.
Thus ΔS has at least n roots; however, its degree is less than n, so ΔS should be identically zero. This shows that S(x) is a constant, say S(x)≡β.
Step 3. Notice that the polynomials P(x)−β/2 and Q(x)−β/2 are also block-similar and distinct. So we may replace the initial polynomials by these ones, thus reaching P(x)=−Q(x).
Then R(x)=2P(x), so P(x) has exactly one root in each of the segments Ii,i=1,2,…,n. On the other hand, P(x) and −P(x) should attain the same number of positive values on Zi. Since k is odd, this means that Zi contains exactly one root of P(x); moreover, this root should be at the center of Zi, because P(x) has the same number of positive and negative values on Zi.
Thus we have found all n roots of P(x), so
P(x)=ci=1∏n(x−ik+ℓ) for some c∈R\{0}
where ℓ=(k−1)/2. It remains to notice that for every t∈Z1\{1} we have
∣P(t)∣=∣c∣⋅∣t−ℓ−1∣⋅i=2∏n∣t−ik+ℓ∣<∣c∣⋅ℓ⋅i=2∏n∣1−ik+ℓ∣=∣P(1)∣
so P(1)=−P(t) for all t∈Z1. This shows that P(x) is not block-similar to −P(x). The final contradiction.