A - Arithmetic Sequence Editorial by evima
◆ Dimensionality reduction
The sequence \(A\) is arithmetic if and only if \(2A_2 - A_1 - A_3 = 0\), so it is the value \(2A_2 - A_1 - A_3\) that matters, rather than \(A_i\) themselves.
Therefore, let us define \(X = 2A_2 - A_1 - A_3\). We can compute the value of \(X\) after doing some operations without using the values of \(A_i\) themselves, so let us ignore them. In the end, our problem is as follows.
Given is an integer \(X\). We can do the following two kinds of operations.
- Add \(-1\) to \(X\). (Equivalent to choosing \(i = 1\) or \(3\).)
- Add \(2\) to \(X\). (Equivalent to choosing \(i = 2\).)
Find the minimum number of operations to make \(X = 0\).
Now our situation is simpler with just one variable (dimension) \(X\) instead of three: \(A_1, A_2, A_3\).
◆ Finding the answer
Let \(k\) be the number of times we add \(2\) to \(X\). Then, it is necessary that \(k\geqq 0\) and \(X + 2k\geqq 0\), which can be represented as \(k\geqq k_0\) where \(k_0 = \max(0, \lceil (-X)/2\rceil)\).
If we fix \(k\geqq k_0\), we need to do \(X + 2k\) additions of \(-1\), for a total of \(X + 3k\) operations. In order to minimize this number, we should minimize \(k\), which means the answer is \(X + 3k_0\). The time complexity of our approach is \(\Theta(1)\).
◆ Sample Implementation