я бы попробовал в сторону графов подумать