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

Code

#include <iostream>
#include <vector>

int main() {
	// say the sequence starts and ends with banana or apple, then banana or apple loses. Otherwise, the one whose side depletes first wins. It is always optimal to take from your own side if possible
	int t;
	std::cin >> t;
	for (int j = 0; j < t; ++j) {
		std::string seq;
		std::cin >> seq;
		int n = seq.size();
		std::vector<int> left;
		std::vector<int> right;
		int left_owner = (seq[0] == 'C' ? 0 : (seq[0] == 'A' ? 1 : -1));
		int right_owner = (seq[n-1] == 'C' ? 0 : (seq[n-1] == 'A' ? 1 : -1));
		int winner = 0;
		//std::cout << left_owner << ' ' << right_owner << '\n';
		for (int i = 0; i < n; ++i) {
			if (seq[i] == 'C') break;
			if (seq[i] == 'A') {
				left.push_back(1);
			} else {
				left.push_back(-1);
			}
		}
		for (int i = n-1; i >= 0; --i) {
			if (seq[i] == 'C') break;
			if (seq[i] == 'A') {
				right.push_back(1);
			} else {
				right.push_back(-1);
			}
		}
		if ((left_owner == 0) || (right_owner == 0)) {
			if (left_owner == 0) winner = -right_owner;
			if (right_owner == 0) winner = -left_owner;
		} else {
			if (left_owner == right_owner) {
				winner = - left_owner;
			} else {
				int turn = 1;
				while((!left.empty()) && (!right.empty())) {
					if (left_owner == turn) {
						if (left.back() == turn) {
							left.pop_back();
						} else if (right.back() == turn) {
							right.pop_back();
						}
					} else {
						if (right.back() == turn) {
							right.pop_back();
						} else if (left.back() == turn) {
							left.pop_back();
						}
					}
					turn = -turn;
				}
				winner = (left.empty() ? left_owner : right_owner);
			}
		}
		std::cout << (winner == 1 ? "Uolevi" : "Maija") << '\n';
	}
}

Test details

Test 1

Verdict: ACCEPTED

input
3
AAACBB
CABAB
BBBBCBA

correct output
Maija
Uolevi
Maija

user output
Maija
Uolevi
Maija

Test 2

Verdict: ACCEPTED

input
10
BCAA
ABABBCBBAAA
BAAABBABCAAA
BABAACA
...

correct output
Maija
Maija
Uolevi
Uolevi
Uolevi
...

user output
Maija
Maija
Uolevi
Uolevi
Uolevi
...

Test 3

Verdict: ACCEPTED

input
10
AACBBAABB
CAABBBABBB
AAABCBBBBBA
AACBBBBA
...

correct output
Uolevi
Uolevi
Maija
Maija
Uolevi
...

user output
Uolevi
Uolevi
Maija
Maija
Uolevi
...

Test 4

Verdict: ACCEPTED

input
10
BCAA
ABBAAABCAAB
BBBABABCABBA
ABACABB
...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
Maija
Maija
Maija
Uolevi
Uolevi
...

Test 5

Verdict: ACCEPTED

input
10
AABACBABB
BBBBBACBBA
ABBCBBABABB
BAABCBBA
...

correct output
Maija
Maija
Maija
Maija
Maija
...

user output
Maija
Maija
Maija
Maija
Maija
...

Test 6

Verdict: ACCEPTED

input
10
BBBCBABBAAABBABAAAABABBBBABABB...

correct output
Maija
Uolevi
Uolevi
Maija
Maija
...

user output
Maija
Uolevi
Uolevi
Maija
Maija
...

Test 7

Verdict: ACCEPTED

input
10
BBBBAABBBBBBBBABBBAABBBBBABBAA...

correct output
Maija
Uolevi
Uolevi
Uolevi
Uolevi
...

user output
Maija
Uolevi
Uolevi
Uolevi
Uolevi
...

Test 8

Verdict: ACCEPTED

input
10
BBBBBAABAAAABAAAABABABBAAABBAA...

correct output
Uolevi
Uolevi
Uolevi
Uolevi
Uolevi
...

user output
Uolevi
Uolevi
Uolevi
Uolevi
Uolevi
...

Test 9

Verdict: ACCEPTED

input
10
AABAAAAAAAAAABAAAABABBAAAAAABB...

correct output
Uolevi
Maija
Maija
Maija
Uolevi
...

user output
Uolevi
Maija
Maija
Maija
Uolevi
...

Test 10

Verdict: ACCEPTED

input
10
ABABBBABABABBAABABAAABBBABAABB...

correct output
Maija
Maija
Uolevi
Maija
Maija
...

user output
Maija
Maija
Uolevi
Maija
Maija
...

Test 11

Verdict: ACCEPTED

input
10
AABBBAAABBABAAAAAABBBBABBBBBBB...

correct output
Maija
Maija
Maija
Uolevi
Maija
...

user output
Maija
Maija
Maija
Uolevi
Maija
...

Test 12

Verdict: ACCEPTED

input
1
AABBBABABAABBBABBBABABABBAAABB...

correct output
Maija

user output
Maija

Test 13

Verdict: ACCEPTED

input
1
BABBAABABBABBAAAABBABBBBABBBAB...

correct output
Uolevi

user output
Uolevi

Test 14

Verdict: ACCEPTED

input
10
ABAAABBAABAABBAAABAABBABBABBAA...

correct output
Maija
Maija
Maija
Uolevi
Maija
...

user output
Maija
Maija
Maija
Uolevi
Maija
...

Test 15

Verdict: ACCEPTED

input
10
AAAAABABBBBABAAABAAAAABBBBBABB...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

Test 16

Verdict: ACCEPTED

input
100
BAAABBAAABAABBBBAAAAABAABABABA...

correct output
Uolevi
Uolevi
Uolevi
Maija
Maija
...

user output
Uolevi
Uolevi
Uolevi
Maija
Maija
...

Test 17

Verdict: ACCEPTED

input
100
ABABABBBBBAABBBBBAABABAAAAABBB...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

Test 18

Verdict: ACCEPTED

input
1000
ABABBABBBBBBBBBAAAAAABBBBABBAB...

correct output
Maija
Maija
Maija
Uolevi
Maija
...

user output
Maija
Maija
Maija
Uolevi
Maija
...

Test 19

Verdict: ACCEPTED

input
1000
BABBBAABBBBAABABAAABAAABBBBBBA...

correct output
Maija
Uolevi
Maija
Maija
Uolevi
...

user output
Maija
Uolevi
Maija
Maija
Uolevi
...

Test 20

Verdict: ACCEPTED

input
10000
BBABBABBABBCAA
AABBABAABBABBBAAAAABAAAAAAAAAB...

correct output
Uolevi
Maija
Uolevi
Maija
Maija
...

user output
Uolevi
Maija
Uolevi
Maija
Maija
...

Test 21

Verdict: ACCEPTED

input
10000
BABABBBBBBABBAAABBBBAABBAAABBB...

correct output
Uolevi
Uolevi
Uolevi
Maija
Uolevi
...

user output
Uolevi
Uolevi
Uolevi
Maija
Uolevi
...

Test 22

Verdict: ACCEPTED

input
10000
AAAAAACBBAABA
ACBAABBBBBAB
ABACBAAAABAA
BBBBABBABACB
...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

Test 23

Verdict: ACCEPTED

input
10000
BAAABABBBBCAB
BBABABAACBAB
ABABBABCB
BBABBAAABAACB
...

correct output
Uolevi
Uolevi
Maija
Uolevi
Uolevi
...

user output
Uolevi
Uolevi
Maija
Uolevi
Uolevi
...

Test 24

Verdict: ACCEPTED

input
10000
BABBBABABCAA
AABBBBBABBABC
AAABBBAABAC
AAABBAACAAA
...

correct output
Uolevi
Maija
Maija
Maija
Uolevi
...

user output
Uolevi
Maija
Maija
Maija
Uolevi
...

Test 25

Verdict: ACCEPTED

input
10000
BBBCABBBBAA
CBABBBABBABB
ABBBAAABBBCAA
BBBCBABBAABAB
...

correct output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

user output
Maija
Uolevi
Maija
Uolevi
Uolevi
...

Test 26

Verdict: ACCEPTED

input
10000
ABAABBBBBBCAB
BBBBBBAAABBAC
BCABBBBBBBBBB
ACBAAAAAAAB
...

correct output
Maija
Uolevi
Uolevi
Uolevi
Maija
...

user output
Maija
Uolevi
Uolevi
Uolevi
Maija
...

Test 27

Verdict: ACCEPTED

input
10000
ABBCBBABABB
ABCBBBAABBBAB
ABAABBCBBABBA
BCBBBAAAAABAB
...

correct output
Maija
Uolevi
Maija
Uolevi
Maija
...

user output
Maija
Uolevi
Maija
Uolevi
Maija
...

Test 28

Verdict: ACCEPTED

input
10000
BCBBBBBBAABA
AAAAABCBABABB
ABBAACAAAABAB
AABACBAABBBA
...

correct output
Maija
Maija
Uolevi
Maija
Maija
...

user output
Maija
Maija
Uolevi
Maija
Maija
...

Test 29

Verdict: ACCEPTED

input
10000
ABAABBAABABCB
BBCBAABBBAAAA
BBBAAACBAABB
BBAAABAAACAAB
...

correct output
Maija
Maija
Uolevi
Uolevi
Maija
...

user output
Maija
Maija
Uolevi
Uolevi
Maija
...

Test 30

Verdict: ACCEPTED

input
10000
BBBBCAAAAABA
ABBABACAAABB
BAABBABACBABA
AAAAACAAABA
...

correct output
Maija
Uolevi
Uolevi
Maija
Maija
...

user output
Maija
Uolevi
Uolevi
Maija
Maija
...

Test 31

Verdict: ACCEPTED

input
8124
BCAAABABB
ABBAACABABABA
BAAABBACABBAB
BBABABBACAAAB
...

correct output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

user output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

Test 32

Verdict: ACCEPTED

input
1
AABBABABAAAAAABAAABBBBABAAABBA...

correct output
Maija

user output
Maija

Test 33

Verdict: ACCEPTED

input
2
BAAABBAAABBBBBBABBABBBBABABBBA...

correct output
Uolevi
Maija

user output
Uolevi
Maija

Test 34

Verdict: ACCEPTED

input
2
ABBBBBAAABBABBBBBABBBBABBBBBBB...

correct output
Maija
Maija

user output
Maija
Maija

Test 35

Verdict: ACCEPTED

input
3
ABBBABAABAABBBABBAABAAABBBBAAB...

correct output
Uolevi
Uolevi
Maija

user output
Uolevi
Uolevi
Maija

Test 36

Verdict: ACCEPTED

input
3
AABBABABABBABBBABAABBBBBAABBBB...

correct output
Maija
Maija
Uolevi

user output
Maija
Maija
Uolevi

Test 37

Verdict: ACCEPTED

input
4
ABBAAABAAABBABAAAAAAAAAAAABAAB...

correct output
Maija
Uolevi
Maija
Uolevi

user output
Maija
Uolevi
Maija
Uolevi

Test 38

Verdict: ACCEPTED

input
4
AAAAAAAAAAAAAAAAAAAABAAABAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi

user output
Uolevi
Maija
Uolevi
Uolevi

Test 39

Verdict: ACCEPTED

input
5
BBAAAAAABAAABAABAAAAABAAAAAAAA...

correct output
Uolevi
Uolevi
Uolevi
Maija
Uolevi

user output
Uolevi
Uolevi
Uolevi
Maija
Uolevi

Test 40

Verdict: ACCEPTED

input
5
BBABBBBABABBBABAAAABBBBBBBBBBA...

correct output
Maija
Uolevi
Maija
Maija
Maija

user output
Maija
Uolevi
Maija
Maija
Maija

Test 41

Verdict: ACCEPTED

input
10
BBAAAABAAAAAAAABBAAAAAAAAAAAAA...

correct output
Uolevi
Uolevi
Maija
Maija
Maija
...

user output
Uolevi
Uolevi
Maija
Maija
Maija
...

Test 42

Verdict: ACCEPTED

input
10
BBAAABABABBBABBAAAAABABABAABAB...

correct output
Uolevi
Uolevi
Uolevi
Maija
Uolevi
...

user output
Uolevi
Uolevi
Uolevi
Maija
Uolevi
...

Test 43

Verdict: ACCEPTED

input
50
BBBBBBBBABBBBBBBBBBBBABBBBABBB...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
Maija
Maija
Maija
Uolevi
Uolevi
...

Test 44

Verdict: ACCEPTED

input
50
BBABBBBBBABAABBBBABBAAABABBABB...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
Maija
Maija
Maija
Uolevi
Uolevi
...

Test 45

Verdict: ACCEPTED

input
100
ABBBBBBBBBBBABBABBBBBBBBBBBBBB...

correct output
Maija
Uolevi
Maija
Uolevi
Maija
...

user output
Maija
Uolevi
Maija
Uolevi
Maija
...

Test 46

Verdict: ACCEPTED

input
100
ABBBBABBBAAAABBBAAAABBABAABABB...

correct output
Maija
Maija
Maija
Uolevi
Uolevi
...

user output
Maija
Maija
Maija
Uolevi
Uolevi
...

Test 47

Verdict: ACCEPTED

input
500
ABBAABBAAABAABAAAABBABBABABABA...

correct output
Maija
Maija
Uolevi
Uolevi
Uolevi
...

user output
Maija
Maija
Uolevi
Uolevi
Uolevi
...

Test 48

Verdict: ACCEPTED

input
500
ABBBBABBBBBBBBABBBBBBBBBBBBABB...

correct output
Maija
Maija
Maija
Maija
Maija
...

user output
Maija
Maija
Maija
Maija
Maija
...

Test 49

Verdict: ACCEPTED

input
1000
BAAAACAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi
Uolevi
...

user output
Uolevi
Maija
Uolevi
Uolevi
Uolevi
...

Test 50

Verdict: ACCEPTED

input
1000
BAAABAABAABAAABAAAAAAABAAAAAAA...

correct output
Uolevi
Uolevi
Uolevi
Uolevi
Maija
...

user output
Uolevi
Uolevi
Uolevi
Uolevi
Maija
...

Test 51

Verdict: ACCEPTED

input
5000
BAAAABBAABABAABAABAAAABBAAAAAA...

correct output
Uolevi
Maija
Maija
Maija
Maija
...

user output
Uolevi
Maija
Maija
Maija
Maija
...

Test 52

Verdict: ACCEPTED

input
5000
BBBBBBABABBABABBBABBBBBBBBBBAA...

correct output
Maija
Uolevi
Uolevi
Maija
Uolevi
...

user output
Maija
Uolevi
Uolevi
Maija
Uolevi
...

Test 53

Verdict: ACCEPTED

input
10000
AABAABCABBAAAB
ABBAABAAABAABAAABABBBBBABCBBBA...

correct output
Uolevi
Uolevi
Maija
Maija
Maija
...

user output
Uolevi
Uolevi
Maija
Maija
Maija
...

Test 54

Verdict: ACCEPTED

input
10000
AABBBCBBABBBABBBBBBBABBBBBBBBA...

correct output
Maija
Uolevi
Uolevi
Maija
Uolevi
...

user output
Maija
Uolevi
Uolevi
Maija
Uolevi
...

Test 55

Verdict: ACCEPTED

input
12
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

user output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

Test 56

Verdict: ACCEPTED

input
12
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
Uolevi
Maija
Uolevi
Uolevi
Maija
...

user output
Uolevi
Maija
Uolevi
Uolevi
Maija
...