1. **Problem Statement:** Given an array $a$ of integers of size $n$, we want to reorder $a$ so that no position $1 \leq i \leq n$ is blocked. A position $i$ is blocked if $a_i$ can be expressed as the sum of a subset of $a_1, a_2, \ldots, a_{i-1}$. We need to find such a reorder or report it is impossible.
2. **Key Idea:** To avoid any position being blocked, each element $a_i$ should not be representable as a sum of any subset of the previous elements. This means the array should be arranged so that each element is strictly greater than the sum of all previous elements.
3. **Approach:**
- Sort the array in non-decreasing order.
- Check if for every $i > 1$, $a_i > \sum_{k=1}^{i-1} a_k$.
- If this condition holds for all $i$, then the sorted array is a valid reorder.
- Otherwise, it is impossible to reorder to satisfy the condition.
4. **Why this works:**
- If $a_i \leq \sum_{k=1}^{i-1} a_k$, then $a_i$ can be formed by some subset of previous elements (since sums of subsets cover all values up to the total sum).
- Ensuring $a_i > \sum_{k=1}^{i-1} a_k$ guarantees $a_i$ cannot be formed by any subset of previous elements.
5. **Example:**
- Suppose $a = [1, 2, 3, 6]$ sorted.
- Check sums:
- $a_2 = 2 > 1$ (sum of previous)
- $a_3 = 3 > 1+2=3$ (not strictly greater, so blocked)
- So this reorder is invalid.
6. **Algorithm:**
- Sort $a$.
- Initialize $sum = 0$.
- For each element $x$ in $a$:
- If $x \leq sum$, return "impossible".
- Else, update $sum = sum + x$.
- If loop completes, return the sorted array.
**Final answer:** The array sorted in ascending order if it satisfies $a_i > \sum_{k=1}^{i-1} a_k$ for all $i$, otherwise "impossible".
Blocked Position 024Fab
Step-by-step solutions with LaTeX - clean, fast, and student-friendly.