CSES - KILO 2017 3/5 - Results
Submission details
Task:Fruit game
Sender:Koodi Ilolle
Submission time:2017-09-19 18:48:50 +0300
Language:Java
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.16 sdetails
#2--details
#3--details
#4--details
#5--details
#6--details
#7--details
#8--details
#9--details
#10--details
#11--details
#12--details
#13--details
#14--details
#15--details
#16--details
#17--details
#18--details
#19--details
#20--details
#21--details
#22--details
#23--details
#24--details
#25--details
#26--details
#27--details
#28--details
#29--details
#30--details
#31--details
#32--details
#33--details
#34--details
#35--details
#36--details
#37--details
#38--details
#39--details
#40--details
#41--details
#42--details
#43--details
#44--details
#45--details
#46--details
#47--details
#48--details
#49--details
#50--details
#51--details
#52--details
#53--details
#54--details
#55--details
#56--details

Code

import java.util.*;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author henpeura
 */
public class TastyApples {

    private enum Player {
        UOLEVI, MAIJA;
    }

    public static void main(String[] args) {
        IO io = new IO();
        int length = io.nextInt();
        for (int i = 0; i < length; i++) {
            io.println(playGame(io.next()));
        }
        io.close();
    }

    private static String playGame(String game) {

        ArrayList<Character> gameState = new ArrayList<>();

        int numberOfA = 0;
        int numberOfB = 0;
        char[] arr = game.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == 'A') {
                numberOfA++;
            }
            if (arr[i] == 'B') {
                numberOfB++;
            }
            gameState.add(arr[i]);
        }

        int ci = gameState.indexOf('C');

        // Uolevi aloittaa
        Player vuoro = Player.MAIJA;
        while (true) {

            if (numberOfA == 0) {
                return "Uolevi";
            } else if (numberOfB == 0) {
                return "Maija";
            }

            if (vuoro == Player.UOLEVI) {
                vuoro = Player.MAIJA;
            } else {
                vuoro = Player.UOLEVI;
            }

            if (vuoro == Player.UOLEVI) {
                if (inBounds(gameState.size(), ci) && gameState.get(ci - 1) == 'A' && gameState.get(ci + 1) == 'A') {
                    if (inBounds(gameState.size(), ci - 1) && gameState.get(ci - 2) != 'B') {
                        gameState.remove(ci - 1);
                        numberOfA--;
                        ci--;
                    } else if (inBounds(gameState.size(), ci + 1) && gameState.get(ci + 2) != 'B') {
                        gameState.remove(ci + 1);
                        numberOfA--;
                    } else {
                        if (gameState.get(ci - 1) != 'B' && !inBounds(gameState.size(), ci - 2)) {
                            gameState.remove(ci - 1);
                            numberOfA--;
                            ci--;
                        } else if (inBounds(gameState.size(), ci + 1) && gameState.get(ci + 1) != 'B' && !inBounds(gameState.size(), ci + 2)) {
                            gameState.remove(ci + 1);
                            numberOfA--;
                        }
                    }
                } else if (ci + 1 < gameState.size() && gameState.get(ci + 1) == 'A') {
                    gameState.remove(ci + 1);
                    numberOfA--;
                } else if (ci - 1 > 0 && gameState.get(ci - 1) == 'A') {
                    gameState.remove(ci - 1);
                    numberOfA--;
                    ci--;
                }

            } else {
                if (inBounds(gameState.size(), ci) && gameState.get(ci - 1) == 'B' && gameState.get(ci + 1) == 'B') {
                    if (inBounds(gameState.size(), ci - 1) && gameState.get(ci - 2) != 'A') {
                        gameState.remove(ci - 1);
                        numberOfB--;
                        ci--;
                    } else if (inBounds(gameState.size(), ci + 1) && gameState.get(ci + 2) != 'A') {
                        gameState.remove(ci + 1);
                        numberOfB--;
                    } else {
                        if (gameState.get(ci - 1) != 'A' && !inBounds(gameState.size(), ci - 2)) {
                            gameState.remove(ci - 1);
                            numberOfB--;
                            ci--;
                        } else if (inBounds(gameState.size(), ci + 1) && gameState.get(ci + 1) != 'A' && !inBounds(gameState.size(), ci + 2)) {
                            gameState.remove(ci + 1);
                            numberOfB--;
                        }
                    }
                } else if (ci + 1 < gameState.size() && gameState.get(ci + 1) == 'B') {
                    gameState.remove(ci + 1);
                    numberOfB--;
                } else if (ci - 1 > 0 && gameState.get(ci - 1) == 'B') {
                    gameState.remove(ci - 1);
                    numberOfB--;
                    ci--;
                }
            }
        }

    }

    private static boolean inBounds(int size, int n) {
        return n - 1 >= 0 && n + 1 < size;
    }

    /**
     *
     * @param game
     * @param ci
     * @return
     */
    private static Player hasBetterMove(ArrayList<Character> game, int ci) {
        int aCount = 0;
        int bCount = 0;

        return Player.MAIJA;
    }
}

Test details

Test 1

Verdict: ACCEPTED

input
3
AAACBB
CABAB
BBBBCBA

correct output
Maija
Uolevi
Maija

user output
Maija
Uolevi
Maija

Test 2

Verdict:

input
10
BCAA
ABABBCBBAAA
BAAABBABCAAA
BABAACA
...

correct output
Maija
Maija
Uolevi
Uolevi
Uolevi
...

user output
(empty)

Test 3

Verdict:

input
10
AACBBAABB
CAABBBABBB
AAABCBBBBBA
AACBBBBA
...

correct output
Uolevi
Uolevi
Maija
Maija
Uolevi
...

user output
(empty)

Test 4

Verdict:

input
10
BCAA
ABBAAABCAAB
BBBABABCABBA
ABACABB
...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 5

Verdict:

input
10
AABACBABB
BBBBBACBBA
ABBCBBABABB
BAABCBBA
...

correct output
Maija
Maija
Maija
Maija
Maija
...

user output
(empty)

Test 6

Verdict:

input
10
BBBCBABBAAABBABAAAABABBBBABABB...

correct output
Maija
Uolevi
Uolevi
Maija
Maija
...

user output
(empty)

Test 7

Verdict:

input
10
BBBBAABBBBBBBBABBBAABBBBBABBAA...

correct output
Maija
Uolevi
Uolevi
Uolevi
Uolevi
...

user output
(empty)

Test 8

Verdict:

input
10
BBBBBAABAAAABAAAABABABBAAABBAA...

correct output
Uolevi
Uolevi
Uolevi
Uolevi
Uolevi
...

user output
(empty)

Test 9

Verdict:

input
10
AABAAAAAAAAAABAAAABABBAAAAAABB...

correct output
Uolevi
Maija
Maija
Maija
Uolevi
...

user output
(empty)

Test 10

Verdict:

input
10
ABABBBABABABBAABABAAABBBABAABB...

correct output
Maija
Maija
Uolevi
Maija
Maija
...

user output
(empty)

Test 11

Verdict:

input
10
AABBBAAABBABAAAAAABBBBABBBBBBB...

correct output
Maija
Maija
Maija
Uolevi
Maija
...

user output
(empty)

Test 12

Verdict:

input
1
AABBBABABAABBBABBBABABABBAAABB...

correct output
Maija

user output
(empty)

Test 13

Verdict:

input
1
BABBAABABBABBAAAABBABBBBABBBAB...

correct output
Uolevi

user output
(empty)

Test 14

Verdict:

input
10
ABAAABBAABAABBAAABAABBABBABBAA...

correct output
Maija
Maija
Maija
Uolevi
Maija
...

user output
(empty)

Test 15

Verdict:

input
10
AAAAABABBBBABAAABAAAAABBBBBABB...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 16

Verdict:

input
100
BAAABBAAABAABBBBAAAAABAABABABA...

correct output
Uolevi
Uolevi
Uolevi
Maija
Maija
...

user output
(empty)

Test 17

Verdict:

input
100
ABABABBBBBAABBBBBAABABAAAAABBB...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 18

Verdict:

input
1000
ABABBABBBBBBBBBAAAAAABBBBABBAB...

correct output
Maija
Maija
Maija
Uolevi
Maija
...

user output
(empty)

Test 19

Verdict:

input
1000
BABBBAABBBBAABABAAABAAABBBBBBA...

correct output
Maija
Uolevi
Maija
Maija
Uolevi
...

user output
(empty)

Test 20

Verdict:

input
10000
BBABBABBABBCAA
AABBABAABBABBBAAAAABAAAAAAAAAB...

correct output
Uolevi
Maija
Uolevi
Maija
Maija
...

user output
(empty)

Test 21

Verdict:

input
10000
BABABBBBBBABBAAABBBBAABBAAABBB...

correct output
Uolevi
Uolevi
Uolevi
Maija
Uolevi
...

user output
(empty)

Test 22

Verdict:

input
10000
AAAAAACBBAABA
ACBAABBBBBAB
ABACBAAAABAA
BBBBABBABACB
...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 23

Verdict:

input
10000
BAAABABBBBCAB
BBABABAACBAB
ABABBABCB
BBABBAAABAACB
...

correct output
Uolevi
Uolevi
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 24

Verdict:

input
10000
BABBBABABCAA
AABBBBBABBABC
AAABBBAABAC
AAABBAACAAA
...

correct output
Uolevi
Maija
Maija
Maija
Uolevi
...

user output
(empty)

Test 25

Verdict:

input
10000
BBBCABBBBAA
CBABBBABBABB
ABBBAAABBBCAA
BBBCBABBAABAB
...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 26

Verdict:

input
10000
ABAABBBBBBCAB
BBBBBBAAABBAC
BCABBBBBBBBBB
ACBAAAAAAAB
...

correct output
Maija
Uolevi
Uolevi
Uolevi
Maija
...

user output
(empty)

Test 27

Verdict:

input
10000
ABBCBBABABB
ABCBBBAABBBAB
ABAABBCBBABBA
BCBBBAAAAABAB
...

correct output
Maija
Uolevi
Maija
Uolevi
Maija
...

user output
(empty)

Test 28

Verdict:

input
10000
BCBBBBBBAABA
AAAAABCBABABB
ABBAACAAAABAB
AABACBAABBBA
...

correct output
Maija
Maija
Uolevi
Maija
Maija
...

user output
(empty)

Test 29

Verdict:

input
10000
ABAABBAABABCB
BBCBAABBBAAAA
BBBAAACBAABB
BBAAABAAACAAB
...

correct output
Maija
Maija
Uolevi
Uolevi
Maija
...

user output
(empty)

Test 30

Verdict:

input
10000
BBBBCAAAAABA
ABBABACAAABB
BAABBABACBABA
AAAAACAAABA
...

correct output
Maija
Uolevi
Uolevi
Maija
Maija
...

user output
(empty)

Test 31

Verdict:

input
8124
BCAAABABB
ABBAACABABABA
BAAABBACABBAB
BBABABBACAAAB
...

correct output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

user output
(empty)

Test 32

Verdict:

input
1
AABBABABAAAAAABAAABBBBABAAABBA...

correct output
Maija

user output
(empty)

Test 33

Verdict:

input
2
BAAABBAAABBBBBBABBABBBBABABBBA...

correct output
Uolevi
Maija

user output
(empty)

Test 34

Verdict:

input
2
ABBBBBAAABBABBBBBABBBBABBBBBBB...

correct output
Maija
Maija

user output
(empty)

Test 35

Verdict:

input
3
ABBBABAABAABBBABBAABAAABBBBAAB...

correct output
Uolevi
Uolevi
Maija

user output
(empty)

Test 36

Verdict:

input
3
AABBABABABBABBBABAABBBBBAABBBB...

correct output
Maija
Maija
Uolevi

user output
(empty)

Test 37

Verdict:

input
4
ABBAAABAAABBABAAAAAAAAAAAABAAB...

correct output
Maija
Uolevi
Maija
Uolevi

user output
(empty)

Test 38

Verdict:

input
4
AAAAAAAAAAAAAAAAAAAABAAABAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi

user output
(empty)

Test 39

Verdict:

input
5
BBAAAAAABAAABAABAAAAABAAAAAAAA...

correct output
Uolevi
Uolevi
Uolevi
Maija
Uolevi

user output
(empty)

Test 40

Verdict:

input
5
BBABBBBABABBBABAAAABBBBBBBBBBA...

correct output
Maija
Uolevi
Maija
Maija
Maija

user output
(empty)

Test 41

Verdict:

input
10
BBAAAABAAAAAAAABBAAAAAAAAAAAAA...

correct output
Uolevi
Uolevi
Maija
Maija
Maija
...

user output
(empty)

Test 42

Verdict:

input
10
BBAAABABABBBABBAAAAABABABAABAB...

correct output
Uolevi
Uolevi
Uolevi
Maija
Uolevi
...

user output
(empty)

Test 43

Verdict:

input
50
BBBBBBBBABBBBBBBBBBBBABBBBABBB...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 44

Verdict:

input
50
BBABBBBBBABAABBBBABBAAABABBABB...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 45

Verdict:

input
100
ABBBBBBBBBBBABBABBBBBBBBBBBBBB...

correct output
Maija
Uolevi
Maija
Uolevi
Maija
...

user output
(empty)

Test 46

Verdict:

input
100
ABBBBABBBAAAABBBAAAABBABAABABB...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
(empty)

Test 47

Verdict:

input
500
ABBAABBAAABAABAAAABBABBABABABA...

correct output
Maija
Maija
Uolevi
Uolevi
Uolevi
...

user output
(empty)

Test 48

Verdict:

input
500
ABBBBABBBBBBBBABBBBBBBBBBBBABB...

correct output
Maija
Maija
Maija
Maija
Maija
...

user output
(empty)

Test 49

Verdict:

input
1000
BAAAACAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi
Uolevi
...

user output
(empty)

Test 50

Verdict:

input
1000
BAAABAABAABAAABAAAAAAABAAAAAAA...

correct output
Uolevi
Uolevi
Uolevi
Uolevi
Maija
...

user output
(empty)

Test 51

Verdict:

input
5000
BAAAABBAABABAABAABAAAABBAAAAAA...

correct output
Uolevi
Maija
Maija
Maija
Maija
...

user output
(empty)

Test 52

Verdict:

input
5000
BBBBBBABABBABABBBABBBBBBBBBBAA...

correct output
Maija
Uolevi
Uolevi
Maija
Uolevi
...

user output
(empty)

Test 53

Verdict:

input
10000
AABAABCABBAAAB
ABBAABAAABAABAAABABBBBBABCBBBA...

correct output
Uolevi
Uolevi
Maija
Maija
Maija
...

user output
(empty)

Test 54

Verdict:

input
10000
AABBBCBBABBBABBBBBBBABBBBBBBBA...

correct output
Maija
Uolevi
Uolevi
Maija
Uolevi
...

user output
(empty)

Test 55

Verdict:

input
12
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

user output
(empty)

Test 56

Verdict:

input
12
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

user output
(empty)