Here's my python version. I think that the list comperhension and use of the reduce function might help with the speed. I have read that they are supposed to be a bit faster than a standard for loop in python. However, I worry that using reduce to raise an exception may take away any benefit from an early exit. I doubt that python's exception handling is all that optimized for speed.
import sys for line in sys.stdin: nums = line.strip().split() try: value = reduce(lambda x,y: 0 < abs(x-y) <= len(nums) and y or None, [int(item) for item in nums]) except TypeError: ## early exit, reduce got an error subtracting None and int print 'Not a match' else: ## print match if the reduce function returns a value ## print Not a match if reduce function returns None print '%smatch' % (not value and 'Not a ' or '') /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */