Фух ну это было и не легко самому, своими мыслями сделать. А если разобраться в тех алгоритмах что ты мне скинул то еще время нужно на оптимизацию.