Using the fact
min(x1,x2,...,xn) = min(x1,min(x2,x3,...,xn))
You can see that you can use a DP algorithm to solve for X
in O(n)
Pseudocode
Min-Suffixes(input)
n = input.length
let output = new array of size n
output[n] = input[n]
for i = n-1 to 1
output[i] = min(output[i+1],input[i])
return output