Can I connect input pins directly to +5V?

i would try to use the internal pull-up resistors first...
like this:
arduino pin -----------------20m------------cable---------------- reed ||||| reed ---------- GND
maybe it might be good, to insert a 1k resistor (in series) between the arduino pin and the long cable...
and some additional protection schottky diodes close to the arduino pin (one that points to 5V and one that points from GND)....

if u r afraid that those 20m cables act like an antenna and inject false signals (which they could do to those UDN2981, too...), u could put an ATtiny close to each reed switch... and then connect all those ATtiny-s to one bus...

if u r afraid of lightning, u could make that bus out of optical fibre thingies: