Приём решения алгоритмических задач: Apply common data structures and algorithms at the problem. В чём суть и когда применять?