Solution (source code)

= Solution

For $S\subseteq X$, count with reciprocal degrees. On every edge $xy$, $d(x)\ge d(y)$, so
$$
|S|=\sum_{x\in S}\sum_{y\sim x}\frac1{d(x)}
\le\sum_{y\in N(S)}\sum_{\substack{x\in S\\x\sim y}}\frac1{d(y)}
\le|N(S)|.
$$
Hall's condition holds, so <Hall marriage theorem> supplies the matching.