сомневаюсь, что после reddie кто-то что-то сможит что-то улучшить...
А вдруг =) тем более я не вникал алгоритм, а лишь оптимизировал то, что видел "лишнее" в коде. Зная размеры таблиц, получаемые значения и прочие тонкости, вполне возможно, получится переработать сам алгоритм, а не сокращать кусочки кода. Желающие могут попробовать.