Problem Statement
Initially, John is in room 0 and Gogo is in room N. The two players alternate turns, and John gets the first turn. On each turn, the current player chooses a color which hasn't yet been chosen from among the 16 possible colors. All doors, if any, with the chosen color are then opened. At this point, if one of the players can reach the trophy room by walking through only open doors, that player wins and the game ends. If both players can reach the trophy room, the game ends in a draw. If neither player can reach the trophy room, the game continues.
Each player will play according to the following strategy: Each time a player needs to choose a color, he will make make his choice as follows:
- If it's possible for him to choose a color in such a way that he will be able to win no matter what his opponent does, he will choose such a color. If there are several such colors, he will choose the one among them for which the game will end with the fewest total number of colors chosen, assuming that the opponent aims to maximize the number of colors chosen in the game.
- Otherwise, if it's possible for him to choose a color in such a way that he will be able to end the game in a draw no matter what his opponent does, he will choose any such color.
- Otherwise, he will choose a color for which the game will end with the largest total number of colors chosen, assuming that his opponent aims to win while minimizing the total number of colors chosen.
Definition
- Class:
- DoorsGame
- Method:
- determineOutcome
- Parameters:
- String, int
- Returns:
- int
- Method signature:
- int determineOutcome(String doors, int trophy)
- (be sure your method is public)
Constraints
- doors will contain between 2 and 50 characters, inclusive.
- Each character in doors will be an uppercase letter 'A'-'P'.
- trophy will be between 1 and N-1, inclusive, where N is the number of characters in doors.
Examples
"ABCD"
2
Returns: 3
There are five rooms, with the trophy room in the middle. John will win after he chooses color A and B.
"ABCC"
2
Returns: -2
In this case, Gogo will win by just choosing color C.
"ABABAB"
3
Returns: 0
When colors A and B have been chosen, both players will be able to reach the trophy room.
"ABAPDCAA"
5
Returns: -4
"MOCFDCE"
3
Returns: 5
"ABCCDE"
3
Returns: 0
"ACC"
2
Returns: 0
"ABCDEFGHIJKLMNOP"
7
Returns: 13
"ABCDEFGHIJKLMNOP"
8
Returns: 15
"ABCDEFGHIJKLMNOP"
9
Returns: -14
"ABCDEFGHIJKLMNOP"
10
Returns: -12
"ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP"
16
Returns: 0
"ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP"
8
Returns: 15
"ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP"
9
Returns: 0
"ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP"
25
Returns: -14
"ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP"
24
Returns: 0
"PNKCMCHKPBAGAOHACNGAFEPOKGABHMBKHNHJBAHKLPDOJLNPFC"
40
Returns: 0
"ABCDEF"
1
Returns: 1
"PDBGECCBAGBE"
10
Returns: -4
"JKANOBFNGPHOCLBCJCAKEPEIPKAICPKECKKKDPEADMCPDAMIAP"
20
Returns: 0
"JOJJJOOJJOOJOJJJOJJJOOJJONNJJJJJNJJJJNJNNNJJJNNNJJ"
25
Returns: 0
"NIAEGMBJOKPCLHDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
15
Returns: -2
"IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJELFBHNOMCPDGAK"
35
Returns: 1
"JPJPHGFJMIEELJKBOPNGABCEDBCHJAEPDKGIBCMIEFDIPFGNLO"
25
Returns: 0
"JMPLADFNIKODPMECJGIB"
10
Returns: 0
"PHHNBBNHGPNFIOHHFOJBEHOJOLKMDHDLEPDMLIAAPAAHHDHAJK"
25
Returns: 0
"KDHHFIMECBHDBINLLKPLALALDKKAOJPPPLAOKLLPIOKEGIPIAP"
15
Returns: 0
"FJLNGJMGCENHEAFBFLHAMBMKDKBBKEJMOJBBKOMMJOMJBBMIKD"
20
Returns: 0
"HNJDJEMJCMEHFPIMKKOLGNBINBABIGAIGGDNGNAGDLNNAIBANB"
20
Returns: -14
"DHODKMNBNDKOHIKKNHHKMPJLFGACBAPEIKKIA"
20
Returns: 15
"ABDFBBLBACJJFDDDLCDJFMJMPNHCEOGKNAEI"
20
Returns: 13
"HHPDLALMJNOEACMKGDMGNMHPFCEBILCJDB"
17
Returns: 0
"JNJMEEMBBKNCPCNKKMNMEBPKNGIDDHHAGOAAIHGFHLGFFODDLL"
25
Returns: 15
"GIMOCNAPDLKLDFJDHFHLFKJKFJDKKBLLKJDDJDDLFBDEFLKEKB"
8
Returns: 15
"OJHBPEKMNFCLDLCDGCLAIAADDDACICCGFFGKAICKLKIFKKDDII"
9
Returns: 0
"NCJIFEHPGDBKHODHKADHBOMHMABLDBOALDDHLDDMHBOLMKAHLO"
8
Returns: 15
"LBKPFOANFCACMDHGIEJK"
1
Returns: 1
"LBKPFOANFCACMDHGIEJK"
2
Returns: 3
"LBKPFOANFCACMDHGIEJK"
3
Returns: 5
"LBKPFOANFCACMDHGIEJK"
4
Returns: 7
"LBKPFOANFCACMDHGIEJK"
5
Returns: 9
"LBKPFOANFCACMDHGIEJK"
6
Returns: 11
"LBKPFOANFCACMDHGIEJK"
7
Returns: 13
"LBKPFOANFCACMDHGIEJK"
8
Returns: 15
"LBKPFOANFCACMDHGIEJK"
9
Returns: 15
"LBKPFOANFCACMDHGIEJK"
10
Returns: 0
"LBKPFOANFCACMDHGIEJK"
11
Returns: 0
"LBKPFOANFCACMDHGIEJK"
12
Returns: 0
"LBKPFOANFCACMDHGIEJK"
13
Returns: -14
"LBKPFOANFCACMDHGIEJK"
14
Returns: -12
"LBKPFOANFCACMDHGIEJK"
15
Returns: -10
"LBKPFOANFCACMDHGIEJK"
16
Returns: -8
"LBKPFOANFCACMDHGIEJK"
17
Returns: -6
"LBKPFOANFCACMDHGIEJK"
18
Returns: -4
"LBKPFOANFCACMDHGIEJK"
19
Returns: -2
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
1
Returns: 1
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
2
Returns: 3
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
3
Returns: 5
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
4
Returns: 5
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
5
Returns: 7
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
6
Returns: 7
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
7
Returns: 9
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
8
Returns: 9
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
9
Returns: 11
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
10
Returns: 13
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
11
Returns: 13
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
12
Returns: 15
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
13
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
14
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
15
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
16
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
17
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
18
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
19
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
20
Returns: 0
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
21
Returns: -14
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
22
Returns: -12
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
23
Returns: -12
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
24
Returns: -10
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
25
Returns: -8
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
26
Returns: -8
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
27
Returns: -8
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
28
Returns: -8
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
29
Returns: -6
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
30
Returns: -4
"ACFAPCKKBNNLOOLOJKAAKGCCMHIDHDEI"
31
Returns: -2
"ACFAPCKKBNNLLLLOJKAAKGCCMHIDHDEI"
13
Returns: 15
"ACFAPCKKBNNLLLLOJKAAKGCCMHIDHDEI"
14
Returns: 15
"ACFAPCKKBNNLLLLOJKAAKGCCMHIDHDEI"
15
Returns: 15
"ACFAPCKKBNNLLLLOJKAAKGCCMHIDHDEI"
16
Returns: 0
"DOLPHINIGLE"
4
Returns: 7
"DOLPHINIGLE"
7
Returns: -8
"DOLPHINIGLE"
6
Returns: 0
"DOLPHINIGLE"
5
Returns: 0
"ABCDE"
3
Returns: -4
"ABCCD"
3
Returns: 0
"ABCCDEFG"
3
Returns: 5
"OP"
1
Returns: 1
"PP"
1
Returns: 0
"IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"
37
Returns: 0
"IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"
1
Returns: 0
"IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"
49
Returns: 0
"ABGAABCD"
3
Returns: 0
"ABCEFABD"
5
Returns: 0
"ABCDEFGHIJKLMOPEFGHIJKLMOPHIJKLMOAAAAAAAALLMOPEFGH"
25
Returns: 0
"ABDCEFGHIJKLMNOPOPAKBJMNFEHI"
14
Returns: 0
"ABCDDDDDAPABCDDDDAPABCDDABDAPABCDDDEAPABCDDDDDAP"
25
Returns: 0
"ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP"
15
Returns: 0
"AAABCD"
2
Returns: 1
"ABCDEHPABCDLMNO"
7
Returns: 0
"ABAC"
2
Returns: 0
"IPMOFECNMELGIGELPEPLDLLFFPNKHELNDBLCNAMMAGCDHKDJEE"
1
Returns: 1
"AJHIDDENMLBJEFFPODFGLMNGHEIJFJBMNLBCDDEDAGFE"
23
Returns: 0
"AB"
1
Returns: 1
"ABCDEDEFGHK"
5
Returns: 0
"ABCDEFCBA"
6
Returns: 0
"ABCDEFGHIJKLABCDEFGHIJKLMN"
12
Returns: 0
"ABCDEFGHIJKLMNPPNMLKJIHGFEDCBA"
16
Returns: 0
"CCCCCCCCCCCCCCABAPDCAACCCCCCCDDDDDDDDDDDCCCCCCCCCC"
25
Returns: -4
"ABCA"
3
Returns: -2
"OCAJBBLJLDGLMHMOJEONMGHHODCNIDLLGPDKNJIFP"
14
Returns: 0
"ABCDAB"
4
Returns: 0
"ADBCIFGFGDE"
7
Returns: 0
"ABCDBCDEF"
4
Returns: 0
"ABCDEFGHIJKLMNOLKJIHGFEDCBA"
7
Returns: 13
"ADCCB"
3
Returns: 0
"ABCDEFGHIJKLMNOAAAAAABCDEFGHIJKLMNOP"
18
Returns: 0
"DOEBMGOCAJBBLJLDGLMHMOJEONMGHHODCNIDLLGPDKN"
34
Returns: -14
"AAAAAAACCCCCCCCCCAAABBDEFHIJKLMOPACBBBBBBBB"
25
Returns: 11
"ABABC"
2
Returns: 0
"ABCDAAAE"
3
Returns: 0
"ABAPDEACCCCAAABCDFHIJKLAABB"
13
Returns: 11
"ABCDECDE"
5
Returns: 0
"PCGDPBNCCHMGNHIJOGFCCOGGIAEAFNOOJHAMCDHFPCDGIAOFNM"
24
Returns: 0
"ABCDEFGHIIIIIIIIABCDEFGHIJKLMNOP"
10
Returns: 0
"ABCABCD"
3
Returns: 0
"ABCDEFGHIJKLMNOPPONMLKJIHGFEDCBAPMNABCDJKIPMED"
8
Returns: 15
"ABCDEFGHIJKLMNABCDEFGHIJKLMNOP"
14
Returns: 0
"ABDEDEC"
4
Returns: 0
"AAAAAAAA"
7
Returns: 0
"DABCD"
4
Returns: -2
"ABCDEFGABCD"
7
Returns: 0
"ABDEDECFG"
4
Returns: 0
"ABA"
2
Returns: 0
"NGLEEBOCEBBNMHAJOBBBMHOBOHKMLGPIMKMALLCPMEMILMC"
32
Returns: 0
"ABCDCDEFG"
4
Returns: 0
"ABGHIIHGCDEF"
5
Returns: 0
"ABCBCDE"
3
Returns: 0
"ABCDEC"
3
Returns: 0
"DEPIPJIMAJMAKCHDKJDOLLEHIHFEEDNDGBGBCEDFKMEPLIPOML"
41
Returns: -12
"AAAAADBAC"
7
Returns: 0
"AAAAAAA"
2
Returns: 0
"ABCDEDCE"
5
Returns: 0
"ABCDDEFGHI"
4
Returns: 7
"ABCDEFGHIJJIH"
10
Returns: -6
"ABACBA"
3
Returns: 0
"BCDEFGHIJKLMNONOHIJKJOCBCBDJA"
15
Returns: 0
"ABA"
1
Returns: 1
"ABDCFGFGDE"
7
Returns: -6
"ABCAB"
2
Returns: 0
"ABCCEFPD"
5
Returns: -6
"ABCCBDE"
3
Returns: 0
"ABPAKLABKLAKLFEKLALBKGKLHG"
10
Returns: 0
"ABCDEABPPPP"
5
Returns: 0
"ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOPABCDEFGHIJKLMNOPAB"
25
Returns: 0
"AIKMMJPEECBOMKDNCMIMBBHGGAHCJHCGFALADHOPFDNCBMGMNM"
5
Returns: 7