DPC/H — Sample Problem 2

Sample Problem 2: Social Network

This problem is an is an example of a more difficult problem, which involves abstractions such as graph algorithms: You are maintaining a social network site, and your task is to verify whether a site member is allowed to access the page of another site member. The members have defined their friendship relations, and they allow different types of access, some only to direct friends, some to friends of friends (and friends of friends of friends, and so on), which are called indirect friends.

Input Description

The input starts with a positive integer n, which is the number of members of the site. This line is followed by a line containing the string "Friendships:", followed by a list of name pairs, each describing a friendship relation. The list of friendships is followed by an empty line, and a line containing the string "Queries:", which is followed by queries, each containing two member names A and B, for which you need to check whether A has permissions to access the B's information. Member names do not contain white-space characters.

Output Description

For each query in the input, where A and B are the names in the query, produce one line of output, which can be one of the following three lines:
direct access
indirect access
no access allowed
depending on whether A is a direct friend of B, indirect friend, or neither of those.

Sample Input

Alice Bob
Bob Charlie
Charlie Dong
Dong Eman
Eman Bob
Sidney Henrik
Henrik Alex

Bob Eman
Sidney Alex
Alex Charlie

Sample Output

direct access
indirect access
no access allowed

Send comments or questions about the contest to Vlado Keselj <vlado@dnlp.ca>.