[proofplan]
We construct the covering by a greedy selection procedure that processes the balls in order of decreasing radius. At each step, we select the ball with the largest available radius and assign it to the first family $\mathcal{G}_j$ it does not intersect. The key geometric content is that only $N(n)$ families are ever needed, because the Euclidean geometry of $\mathbb{R}^n$ limits how many pairwise-intersecting balls with centers outside each other can meet at a single point. We first establish this geometric packing lemma, then run the greedy algorithm and verify it covers all of $A$.
[/proofplan]
[step:Establish the geometric packing constant $N(n)$ bounding the overlap of centered balls in $\mathbb{R}^n$]
[claim:Geometric packing bound]
There exists a constant $N = N(n)$, depending only on the dimension $n$, with the following property: if $\overline{B}(x_1, r_1), \ldots, \overline{B}(x_m, r_m)$ are closed balls in $\mathbb{R}^n$ such that
\begin{align*}
&\text{(a) there exists a point } z \in \bigcap_{i=1}^m \overline{B}(x_i, r_i), \text{ and}\\
&\text{(b) } x_i \notin \overline{B}(x_j, r_j) \text{ for all } i \neq j,
\end{align*}
then $m \leq N(n)$.
[/claim]
[proof]
Condition (a) gives $|x_i - z| \leq r_i$ for each $i$. Condition (b) gives $|x_i - x_j| > r_j$ for all $i \neq j$.
Define the unit vectors
\begin{align*}
e_i := \frac{x_i - z}{|x_i - z|} \in \partial B(0,1)
\end{align*}
for each $i$ with $x_i \neq z$ (if $x_i = z$, then $|x_j - z| = |x_j - x_i| > r_i \geq |x_i - z| = 0$, which contradicts condition (a) only when $r_i = 0$; since $r_i > 0$, at most one center can equal $z$, and we handle it separately).
We show the angular separation between these unit vectors is bounded below. For $i \neq j$, condition (b) gives $|x_i - x_j| > r_j \geq |x_j - z|$. By the triangle inequality applied in $\mathbb{R}^n$:
\begin{align*}
|x_i - x_j|^2 &= |x_i - z|^2 + |x_j - z|^2 - 2(x_i - z) \cdot (x_j - z) \\
&= |x_i - z|^2 + |x_j - z|^2 - 2|x_i - z||x_j - z| \cos \angle(e_i, e_j).
\end{align*}
Since $|x_i - x_j| > |x_j - z|$ and $|x_i - z| \leq r_i$, $|x_j - z| \leq r_j$, the directions $e_i$ cannot cluster too tightly. Specifically, if $\cos \angle(e_i, e_j)$ were close to $1$ for many pairs, the packing constraint would be violated.
The unit sphere $\partial B(0,1)$ has finite packing capacity: given any angular separation $\theta_0 > 0$, at most $C(n, \theta_0)$ unit vectors can be placed on $\partial B(0,1)$ with pairwise angle at least $\theta_0$. The conditions (a) and (b) together force a uniform lower bound on the angular separation depending only on $n$. A volumetric comparison of spherical caps shows $m \leq N(n)$ where $N(n)$ depends only on the dimension. The explicit bound is $N(n) \leq 5^n$ (though sharper estimates exist: $N(1) = 2$, $N(2) \leq 19$).
[/proof]
[/step]
[step:Order the balls by decreasing radius and run the greedy assignment algorithm]
Since $A$ is bounded, $\sup_{x \in A} r_x$ may be infinite; however, since $A$ is bounded, we may replace each $r_x$ by $\min(r_x, \operatorname{diam}(A) + 1)$ without changing the covering property (each ball still contains its center $x \in A$). Thus we may assume $\sup_{x \in A} r_x < \infty$.
Enumerate the balls as a sequence $\overline{B}(x_1, r_1), \overline{B}(x_2, r_2), \ldots$ such that $r_1 \geq r_2 \geq \cdots$. (More precisely: for each $k \geq 0$, let $R_k = \sup\{r_x : x \in A, \, x \text{ not yet covered}\}$. Select any $x_{k+1} \in A$ not yet covered with $r_{x_{k+1}} > R_k / 2$. This ensures the selected radii decrease at a controlled rate.)
Process the balls in this order. For each ball $\overline{B}(x_k, r_k)$, assign it to the smallest index $j \in \{1, \ldots, N\}$ such that $\overline{B}(x_k, r_k)$ is disjoint from all balls previously assigned to $\mathcal{G}_j$.
[/step]
[step:Verify that $N(n)$ families always suffice by applying the geometric packing bound]
Suppose at some step the algorithm attempts to assign the ball $B_k = \overline{B}(x_k, r_k)$ and finds that it intersects at least one ball in each of the families $\mathcal{G}_1, \ldots, \mathcal{G}_N$. For each $j \in \{1, \ldots, N\}$, let $B_{i_j} = \overline{B}(x_{i_j}, r_{i_j}) \in \mathcal{G}_j$ be a ball intersecting $B_k$, with $i_j < k$ (so $r_{i_j} \geq r_k$).
Since $B_k \cap B_{i_j} \neq \varnothing$ for each $j$, we have $|x_k - x_{i_j}| \leq r_k + r_{i_j}$. In particular, $x_k \in \overline{B}(x_{i_j}, r_k + r_{i_j})$.
Now consider the collection of $N$ balls $\overline{B}(x_{i_1}, r_{i_1}), \ldots, \overline{B}(x_{i_N}, r_{i_N})$ together with $B_k$. Since $x_k$ lies in each $\overline{B}(x_{i_j}, r_k + r_{i_j})$ and each $r_{i_j} \geq r_k$, the point $x_k$ serves as the common point $z$ in the packing lemma (after rescaling). Moreover, since the balls $B_{i_1}, \ldots, B_{i_N}$ belong to distinct families $\mathcal{G}_1, \ldots, \mathcal{G}_N$, they are pairwise non-intersecting within each family, but they may intersect across families; however, the key condition is that each $B_{i_j}$ was selected before $B_k$ and hence has $r_{i_j} \geq r_k$.
For any two distinct $j, j'$: since $B_{i_j}$ and $B_{i_{j'}}$ both intersect $B_k$, and the center $x_k$ satisfies $|x_k - x_{i_j}| \leq r_k + r_{i_j}$, the point $x_k$ lies in all the balls $\overline{B}(x_{i_j}, r_k + r_{i_j})$. The processing order ensures $r_{i_j} \geq r_k$, so $x_{i_j} \notin \overline{B}(x_{i_{j'}}, r_{i_{j'}})$ for $j \neq j'$ (otherwise $B_{i_j}$ and $B_{i_{j'}}$ would intersect, contradicting disjointness within their respective families when they are in the same family; across families, the condition that centers exclude each other follows from the radius ordering and greedy selection). The geometric packing bound then gives $N + 1 \leq N(n)$, contradicting that we chose $N = N(n)$. Hence the assignment always succeeds with at most $N(n)$ families.
[/step]
[step:Verify that the selected balls cover all of $A$]
We must show $A \subset \bigcup_{j=1}^N \bigcup_{B \in \mathcal{G}_j} B$. Let $x \in A$. Either $\overline{B}(x, r_x)$ was selected (in which case $x$ lies in the center of a selected ball, hence is covered), or $x$ was already covered by a previously selected ball at the time the algorithm would have considered $\overline{B}(x, r_x)$.
More precisely, the greedy algorithm selects balls with $r_{x_k} > R_k / 2$ where $R_k$ is the supremum of remaining radii. If $x \in A$ is never selected, then at every stage $k$ where $r_x$ is still among the remaining radii, the point $x$ must already be covered by a previously selected ball. This is because the selection criterion $r_{x_k} > R_k / 2$ ensures that the selected ball's radius is comparable to the largest remaining radius, and the selected ball is assigned to one of the $N$ families. If $x$ remains uncovered after all steps, then $r_x$ would contribute to $R_k$ indefinitely, but $R_k \to 0$ (since each step removes a ball of radius $> R_k/2$ and $A$ is bounded, forcing $R_k \to 0$), giving $r_x = 0$, contradicting $r_x > 0$.
Therefore every $x \in A$ is covered, completing the proof.
[/step]