FriendScore
SRM 436 · 2009-03-11 · by Gluk
SRM 436 · 2009-03-11 · by Gluk · Graph Theory
Problem Statement
Problem Statement
You want to determine the most popular person in a social network. To do this, you will count the number of "2-friends" that each person has. Person A is called a 2-friend of another person B if they are friends with each other or if there exists some person C who is a friend of both A and B. The most popular person is the person with the highest number of 2-friends. (There might be more than one if multiple people all have the maximal number of 2-friends.)
You are given aString[] friends, where the j-th character of the i-th element is 'Y' if person i and person j are friends, and 'N' otherwise. Return the number of 2-friends of the most popular person in this social network.
You are given a
Constraints
- friends will contain between 1 and 50 elements, inclusive.
- Each element of friends will contain exactly N characters 'Y' or 'N', where N is the number of elements in friends.
- For each i and j, friends[i][j] will be equal to friends[j][i].
- For each i, friends[i][i] will be equal to 'N'.
Examples
0)
{"NNN",
"NNN",
"NNN"}
Returns: 0
Here, there are 3 people and none of them are friends, so everybody has zero 2-friends.
1)
{"NYY",
"YNY",
"YYN"}
Returns: 2
Each person has two 2-friends.
2)
{"NYNNN",
"YNYNN",
"NYNYN",
"NNYNY",
"NNNYN"}
Returns: 4
Persons 0 and 4 have two 2-friends, persons 1 and 3 have three 2-friends. Person 2 is the most popular one - four 2-friends.
3)
{"NNNNYNNNNN",
"NNNNYNYYNN",
"NNNYYYNNNN",
"NNYNNNNNNN",
"YYYNNNNNNY",
"NNYNNNNNYN",
"NYNNNNNYNN",
"NYNNNNYNNN",
"NNNNNYNNNN",
"NNNNYNNNNN"}
Returns: 8
4)
{"NNNNNNNNNNNNNNNNNNYNNNNYYYNNNNNNNNNNNNNNYN","NNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNYNNNNNNYNN","NNNNNNNNNNNNNNNNNYNNNYNNNNNNNNNNNNNNNNNNNY","NNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNYNNNYNN","NNNNNYYNNNNNYNNNNNNNNNNNYNNNNNNNNNNNNNNNNN","NNNNYNNNNNNNNYNNNNYNNNNNNNNNNNNNYNNNNYYNNN","NNNNYNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNYNN","NNNNNNNNNNNNNNNNNNNNNNNYNYNYNYNNNNNNNNNNYN","NNNNNNNNNNNNYNNNNNNNNYNNNYNNYNNNNNNNNYNNYN","NNNNNNNNNNYNNNNNNNYNNNNNNNNNNYNNYYNYNNNNNN","NNNNNNNNNYNNNNNNNNNNYNYNNNNNNNNNNYYNNNYNNN","NNNNNNNNNNNNNNYNNNNNNNYNNNNNNNYNNNNNNNNNNN","NNNNYNNNYNNNNNNYYNNNYNNNNNNNNYNNNNNNNNNNNN","NNNNNYNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNY","NNNNNNNNNNNYNNNYNNNNNNNNNNNNNYNNNYYYNNNYNN","NYNNNNNNNNNNYNYNYNNNYNNNNNNNNNNNNYNNNNNNNN","NNNNNNNNNNNNYNNYNNYNNNNNNNNNNNNNNNNNNNNNNN","NNYNNNNNNNNNNNNNNNNNNNYNYNNNNNYNNNNYNYNNYN","YNNNNYNNNYNNNNNNYNNNYNNYNYNNNNNNNYNNNNNNNN","NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNYNN","NNNNNNNNNNYNYNNYNNYNNYNNNNYNNNNNNNNYNNNNNN","NNYNNNNNYNNNNNNNNNNNYNNNNNNNNNYYNYNNNNNNNN","NNNNNNNNNNYYNNNNNYNNNNNNNNNNNYNNNNNNNNNNNN","YNNNNNNYNNNNNNNNNNYNNNNNNNNNNNNNNYNNNNNNNN","YNNNYNYNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNYYNN","YNNNNNNYYNNNNNNNNNYNNNNNNNNNNYNNNNNYYNNNNN","NNNYNNNNNNNNNNNNNNNNYNNNNNNNNYNNNNNNNNNNNN","NNNNNNNYNNNNNNNNNNNNNNNNNNNNYNYYNNNNNNNNYN","NNNNNNNNYNNNNNNNNNNNNNNNNNNYNNNNNNNNNNYNNN","NNNNNNNYNYNNYYYNNNNNNNYNNYYNNNNNNNNNNNNNNN","NNNNNNNNNNNYNNNNNYNNNYNNNNNYNNNNNNNNNNYNNY","NNNNNNNNNNNNNNNNNNNNNYNNNNNYNNNNNNNYNNNNNN","NYNNNYNNNYNNNNNNNNNNNNNNNNNNNNNNNNYNNNNYNN","NNNNNNNNNYYNNNYYNNYNNYNYNNNNNNNNNNYNNNNNYN","NNNNNNNNNNYNNNYNNNNNNNNNNNNNNNNNYYNNNNNNNY","NNNYNNNNNYNNNNYNNYNYYNNNNYNNNNNYNNNNNNNNNN","NNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNN","NNNNNYNNYNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNN","NNNNNYNNNNYNNNNNNNNNNNNNYNNNYNYNNNNNNNNNYN","NYNYNNYNNNNNNNYNNNNYNNNNYNNNNNNNYNNNNNNNNN","YNNNNNNYYNNNNNNNNYNNNNNNNNNYNNNNNYNNNNYNNN","NNYNNNNNNNNNNYNNNNNNNNNNNNNNNNYNNNYNNNNNNN"}
Returns: 31
Submissions are judged against all 122 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Coding Area
Language: C++17 · define a public class FriendScore with a public method int highestScore(vector<string> friends) · 122 test cases · 2 s / 256 MB per case