В любом случае нужно ваше решение, т.к. не скажешь без него, где ошибки.
Задание специфическое немного, где приходится считать много всякой абры-кадабры...