Submission details
Task:Stone game
Sender:ileska
Submission time:2025-09-01 17:49:18 +0300
Language:Python3 (CPython3)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.02 sdetails
#20.02 sdetails
#3ACCEPTED0.02 sdetails
#4ACCEPTED0.02 sdetails
#5ACCEPTED0.02 sdetails
#6ACCEPTED0.03 sdetails
#7ACCEPTED0.02 sdetails
#80.02 sdetails
#9ACCEPTED0.02 sdetails
#100.03 sdetails
#11ACCEPTED0.02 sdetails
#120.02 sdetails
#130.02 sdetails
#14ACCEPTED0.02 sdetails
#15ACCEPTED0.02 sdetails
#16ACCEPTED0.02 sdetails
#17ACCEPTED0.02 sdetails
#180.02 sdetails
#19ACCEPTED0.02 sdetails
#200.02 sdetails
#21ACCEPTED0.02 sdetails
#220.02 sdetails
#230.02 sdetails
#24ACCEPTED0.02 sdetails
#25ACCEPTED0.02 sdetails
#260.02 sdetails
#27ACCEPTED0.02 sdetails
#280.02 sdetails
#29ACCEPTED0.02 sdetails
#300.02 sdetails
#31ACCEPTED0.02 sdetails
#320.02 sdetails
#330.02 sdetails
#34ACCEPTED0.02 sdetails
#35ACCEPTED0.02 sdetails
#360.02 sdetails
#37ACCEPTED0.02 sdetails
#380.02 sdetails
#39ACCEPTED0.02 sdetails
#400.02 sdetails
#41ACCEPTED0.02 sdetails
#420.02 sdetails
#430.02 sdetails
#44ACCEPTED0.02 sdetails
#45ACCEPTED0.02 sdetails
#460.02 sdetails
#47ACCEPTED0.02 sdetails
#480.02 sdetails
#49ACCEPTED0.02 sdetails
#500.02 sdetails
#51ACCEPTED0.02 sdetails
#520.02 sdetails
#530.02 sdetails
#54ACCEPTED0.02 sdetails
#55ACCEPTED0.02 sdetails
#56ACCEPTED0.02 sdetails
#570.02 sdetails
#580.02 sdetails
#59ACCEPTED0.02 sdetails
#600.02 sdetails

Code

from functools import cache
import sys

sys.setrecursionlimit(int(1E4))

A, B = [int(ch) for ch in input().split(" ")]

myCache = {}
# @cache
def oneIte(setti: frozenset, turn:bool):
	# cacheSpot = aa+300*bb
	# print(setti)
	if len(setti) != 1:
		aa, bb = setti
	else:
		[aa] = setti
		bb = aa
	cacheSpot = aa+bb
	if turn is None:
		return None
	if aa == 0 or bb == 0:
		return turn
	if cacheSpot in myCache:
		return myCache[cacheSpot]
	if (aa == 1 and bb == 3) or (aa == 3 and bb == 1):
		myCache[cacheSpot] = turn
		return turn
	if aa == 1 and bb == 1:
		myCache[cacheSpot] = not(turn)
		return not(turn)
	if aa == 1 and bb == 2:
		myCache[cacheSpot] = turn
		return turn
	for ii in range(1,aa+1):
		ret = oneIte(frozenset([aa-ii,bb]),not(turn))
		if ret == turn:
			myCache[cacheSpot] = turn
			return turn
	for ii in range(1,bb+1):
		ret = oneIte(frozenset([aa,bb-ii]),not(turn))
		if ret == turn:
			myCache[cacheSpot] = turn
			return turn
	return None

ret = oneIte(frozenset([A,B]), True)
if ret == True:
	print("Uolevi")
elif ret == False:
	print("Maija")
else:
	print("Draw")

Test details

Test 1

Verdict: ACCEPTED

input
3 4

correct output
Uolevi

user output
Uolevi

Test 2

Verdict:

input
5 5

correct output
Maija

user output
Uolevi

Test 3

Verdict: ACCEPTED

input
1 1

correct output
Maija

user output
Maija

Test 4

Verdict: ACCEPTED

input
1 4

correct output
Uolevi

user output
Uolevi

Test 5

Verdict: ACCEPTED

input
5 3

correct output
Uolevi

user output
Uolevi

Test 6

Verdict: ACCEPTED

input
1 1

correct output
Maija

user output
Maija

Test 7

Verdict: ACCEPTED

input
5 2

correct output
Uolevi

user output
Uolevi

Test 8

Verdict:

input
2 2

correct output
Maija

user output
Draw

Test 9

Verdict: ACCEPTED

input
1 5

correct output
Uolevi

user output
Uolevi

Test 10

Verdict:

input
2 2

correct output
Maija

user output
Draw

Test 11

Verdict: ACCEPTED

input
6 8

correct output
Uolevi

user output
Uolevi

Test 12

Verdict:

input
10 10

correct output
Maija

user output
Uolevi

Test 13

Verdict:

input
2 2

correct output
Maija

user output
Draw

Test 14

Verdict: ACCEPTED

input
1 8

correct output
Uolevi

user output
Uolevi

Test 15

Verdict: ACCEPTED

input
10 6

correct output
Uolevi

user output
Uolevi

Test 16

Verdict: ACCEPTED

input
1 1

correct output
Maija

user output
Maija

Test 17

Verdict: ACCEPTED

input
10 4

correct output
Uolevi

user output
Uolevi

Test 18

Verdict:

input
3 3

correct output
Maija

user output
Uolevi

Test 19

Verdict: ACCEPTED

input
1 10

correct output
Uolevi

user output
Uolevi

Test 20

Verdict:

input
4 4

correct output
Maija

user output
Uolevi

Test 21

Verdict: ACCEPTED

input
60 72

correct output
Uolevi

user output
Uolevi

Test 22

Verdict:

input
100 100

correct output
Maija

user output
Uolevi

Test 23

Verdict:

input
19 19

correct output
Maija

user output
Uolevi

Test 24

Verdict: ACCEPTED

input
8 71

correct output
Uolevi

user output
Uolevi

Test 25

Verdict: ACCEPTED

input
91 55

correct output
Uolevi

user output
Uolevi

Test 26

Verdict:

input
6 6

correct output
Maija

user output
Uolevi

Test 27

Verdict: ACCEPTED

input
95 34

correct output
Uolevi

user output
Uolevi

Test 28

Verdict:

input
23 23

correct output
Maija

user output
Uolevi

Test 29

Verdict: ACCEPTED

input
2 97

correct output
Uolevi

user output
Uolevi

Test 30

Verdict:

input
37 37

correct output
Maija

user output
Uolevi

Test 31

Verdict: ACCEPTED

input
119 144

correct output
Uolevi

user output
Uolevi

Test 32

Verdict:

input
200 200

correct output
Maija

user output
Uolevi

Test 33

Verdict:

input
38 38

correct output
Maija

user output
Uolevi

Test 34

Verdict: ACCEPTED

input
15 142

correct output
Uolevi

user output
Uolevi

Test 35

Verdict: ACCEPTED

input
181 110

correct output
Uolevi

user output
Uolevi

Test 36

Verdict:

input
12 12

correct output
Maija

user output
Uolevi

Test 37

Verdict: ACCEPTED

input
190 67

correct output
Uolevi

user output
Uolevi

Test 38

Verdict:

input
46 46

correct output
Maija

user output
Uolevi

Test 39

Verdict: ACCEPTED

input
3 194

correct output
Uolevi

user output
Uolevi

Test 40

Verdict:

input
73 73

correct output
Maija

user output
Uolevi

Test 41

Verdict: ACCEPTED

input
178 215

correct output
Uolevi

user output
Uolevi

Test 42

Verdict:

input
300 300

correct output
Maija

user output
Uolevi

Test 43

Verdict:

input
56 56

correct output
Maija

user output
Uolevi

Test 44

Verdict: ACCEPTED

input
22 213

correct output
Uolevi

user output
Uolevi

Test 45

Verdict: ACCEPTED

input
271 165

correct output
Uolevi

user output
Uolevi

Test 46

Verdict:

input
17 17

correct output
Maija

user output
Uolevi

Test 47

Verdict: ACCEPTED

input
285 100

correct output
Uolevi

user output
Uolevi

Test 48

Verdict:

input
69 69

correct output
Maija

user output
Uolevi

Test 49

Verdict: ACCEPTED

input
4 291

correct output
Uolevi

user output
Uolevi

Test 50

Verdict:

input
110 110

correct output
Maija

user output
Uolevi

Test 51

Verdict: ACCEPTED

input
90 7

correct output
Uolevi

user output
Uolevi

Test 52

Verdict:

input
21 21

correct output
Maija

user output
Uolevi

Test 53

Verdict:

input
134 134

correct output
Maija

user output
Uolevi

Test 54

Verdict: ACCEPTED

input
183 72

correct output
Uolevi

user output
Uolevi

Test 55

Verdict: ACCEPTED

input
277 232

correct output
Uolevi

user output
Uolevi

Test 56

Verdict: ACCEPTED

input
245 54

correct output
Uolevi

user output
Uolevi

Test 57

Verdict:

input
98 98

correct output
Maija

user output
Uolevi

Test 58

Verdict:

input
55 55

correct output
Maija

user output
Uolevi

Test 59

Verdict: ACCEPTED

input
23 152

correct output
Uolevi

user output
Uolevi

Test 60

Verdict:

input
130 130

correct output
Maija

user output
Uolevi