Единственное слабое место в котором я не уверен - это сортировка. А может где еще накосячил и это вообще не рабочий метод решения? Бэн, ай нид хэлп!