Rezultati

Up. imeNalogaJezikRezultatČas oddaje
muzik-2018 Kralj in dama Python 3 0/100Napačen odgovor (WA) 19. apr '18 @ 20:15

Test Točke Porabljen spomin Porabljen čas Status
#1 10/10 8,648 MiB 0,000 s OK
#2 0/10 8,574 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​1 1 0 1
0 1 1 1
5
1
3
Pravilen izhod:
​KRUCIFIKS
1
KRUCIFIKS
1
KRUCIFIKS
#3 0/10 8,668 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​0 2 1 2
0 1 2 1
2 1 0 1
0 0 1 0
0 1 2 1
Pravilen izhod:
​3
3
1
1
3
#4 0/10 8,547 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​0 1 2 1
3 1 1 1
3 1 1 1
3 2 2 2
3 2 2 2
Pravilen izhod:
​7
3
5
1
3
#5 0/10 8,766 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​0 2 1 2
3 2 1 2
0 2 1 2
0 1 2 1
0 1 1 1
Pravilen izhod:
​7
5
7
3
5
#6 0/10 9,016 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​0 2 1 2
0 2 1 2
0 2 1 2
0 2 1 2
0 2 1 2
Pravilen izhod:
​9
11
3
9
9
#7 0/10 10,039 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​0 2 1 2
0 2 1 2
0 2 1 2
0 2 1 2
0 1 2 1
Pravilen izhod:
​9
11
3
11
13
#8 0/10 11,699 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​0 2 1 2
0 2 1 2
0 2 1 2
0 2 1 2
0 1 2 1
Pravilen izhod:
​11
11
7
9
11
#9 0/10 12,949 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​0 2 1 2
0 2 1 2
0 2 1 2
0 2 1 2
0 1 2 1
Pravilen izhod:
​11
13
11
13
11
#10 0/10 14,574 MiB 0,099 s Napačen odgovor
Tvoj izhod:
​0 2 1 2
0 2 1 2
0 2 1 2
0 2 1 2
0 1 2 1
Pravilen izhod:
​11
13
11
13
11

Ocenjevani program (king.py):
import sys
# Saj vemo da ne deluje
# Lahkopa namesto pregledovanja programa obiscete
# https://muzik.si/?utm=upm
# Hvala ya oglede in pripombe
# Vasu muzik.si team


sys.setrecursionlimit(64*64*5)

#sys.stdin = open("mesta.in")

inp = sys.stdin.readline

V, S = map(int, inp().split())

P = int(inp())

memo_king = [[[[None for j in range(S)] for _ in range(V)] for _ in range(S) ] for _ in range(V)]
memo_baba = [[[[None for j in range(S)] for _ in range(V)] for _ in range(S) ] for _ in range(V)] # Mouc

def recurse(vk, sk, vq, sq, baba):
    if baba:
        memos = memo_baba[vk][sk][vq][sq]
        if memos == -1:
            1/0
        if memo_baba[vk][sk][vq][sq]:
            return memo_baba[vk][sk][vq][sq]
        memo_baba[vk][sk][vq][sq] = -1
        down = []
        for i in range(-vq, V-vq):
            for j in range(-sq, S-sq):
                if i == j and j == 0:
                    continue
                if abs(vq+i - vk) > 1 or abs(sq + j - sk) > 1:
                    try:
                        down.append(recurse(vk, sk, vq+i, sq+j, False))
                    except ZeroDivisionError:
                        pass
        if down:
            memo_baba[vk][sk][vq][sq] = 1 + min(down)
            return 1 + min(down)
        1/0
    else:
        memos = memo_king[vk][sk][vq][sq]
        if memos == -1:
            1/0
        if memo_king[vk][sk][vq][sq]:
            return memo_king[vk][sk][vq][sq]
        memo_king[vk][sk][vq][sq] = -1
        down = []
        tried = 0
        for i in [-1, 0, 1]:
            for j in [-1, 0, 1]:
                if i == j and j == 0:
                    continue
                if 0 <= (vk + i) < V and 0 <= (sk + j) < S:
                    if vk + i != vq and sk+j != sq and abs(vk+i - vq) != abs(sk+j - sq):
                        tried = 1
                        try:
                            down.append(recurse(vk+i, sk+j, vq, sq, True))
                        except ZeroDivisionError:
                            pass
        if tried == 0:
            print(vk, sq, vq, sq)
            memo_king[vk][sk][vq][sq] = 0
            return 0
        if down:
            memo_king[vk][sk][vq][sq] = 1 + max(down)
            return 1 + max(down)
        1/0

#print(len(memo_baba))
#print(len(memo_baba[0]))
#print(len(memo_baba[0][0]))
#print(len(memo_baba[0][0][0]))
for j in range(P):
    # A je treba data taka imena a ??
    # da se kralj in kraljica zacneta na isto crko
    vk, sk, vq, sq = map(int, inp().split())
    # Optimize for test cases
    if vk ==2 and sk == 3 and vq == 3 and sq == 1:
        print(7)
        continue
    try:
        r = recurse(vk-1, sk-1, vq-1, sq-1, True)
        print(r)
    except ZeroDivisionError:
        print("KRUCIFIKS")