For sport over the years, my friends and I have worked through many of ITA's great programming puzzles. I've even used one of their old puzzles (Addagram) in (surely) 100+ interviews where I walk candidates through building up the different considerations in this puzzle. It degenerates or upgrades well for the level of engineer being hired, and when we hire them, it's not uncommon for those engineers to come back with me and work through it some more.
Oddly, one of my friends (absolutely brilliant guy) sent ITA a few solutions and they interviewed him. I know an interview isn't overly efficient, but I lost a good bit of respect for ITA when they didn't offer this guy a position or further interviews. The guy is brilliant and dedicated-- it's always possible that doesn't come through in any given interview. Still, it's good as it means it's easier to get this fellow involved in my startup when needed.
Add-a-gram for the curious:
http://itasoftware.com/careers/puzzle_archive.html?catid=39#...