Many thanks to everyone who suggested solutions to this conundrum.

It would appear there are two algorithms you can can follow to solve it. Your choice of algorithm depends on whether you live near the start or finish of the paddle. Either way, you only need one bike.

Algorithm 1: If you live near the start:

- Drive to the start, drop the two kayaks off. One of you stays with the kayaks.
- The other person drives to the finish, leaves the car there, then cycles back to the start and locks up the bike.
- You both paddle down the river to the finish.
- You both load the kayaks onto the car and drive back to the start.
- Unlock the bike, load it onto the car, and drive home.

Algorithm 2: If you live near the finish:

- Drive to the finish and lock the bike up.
- Drive to the start and unload the kayaks.
- You both paddle down the river to the finish.
- One of you stays with the kayaks, while the other unlocks the bike, cycles back to the start and loads the bike onto the car.
- Drive back to the finish, load the kayaks onto the car, and drive home.

Both algorithms work, whether you live nearer the start or the finish, but choosing the wrong algorithm could result in driving twice the distance you need to. Imagine the distance (by road) between start and finish is 10km, and you live at the start. Algorithm 1 will result in 20km of driving, while algorithm 2 will result in 40km of driving. If you live at the finish, it’s the reverse.

If you live midway between start and finish it doesn’t matter which algorithm you choose. they both involve 30km of driving.

So a little logic (‘selection’ in programming speak) is required before the correct algorithm is chosen:

**IF** home to start < home to finish

algorithm 1

**ELSE**

algorithm 2