В социальной сети зарегистрировано

человек. Каждый участник может подписываться на сообщения других участников, причем если человек

подписан на

, то из этого не следует, что

подписан на

. Известно, что среди зарегистрированных пользователей есть знаменитость - человек, на которого подписаны все

других пользователей, но сам он не подписан ни на кого. При помощи одного запроса к серверу вы можете определить, подписан ли человек

на сообщения человека

. Предложите алгоритм, позволяющий найти знаменитость за не более чем

запросов к серверу.
Что такое почитать, чтобы решать такую и подобные задачи?