之前忘记贴代码了,第一个数据点我答案对了,报错。
查看原帖
之前忘记贴代码了,第一个数据点我答案对了,报错。
997364
sjeozq楼主2023/9/30 15:49
a = [''] * 12
a[0] = '*' * 12
a[11] = '*' * 12
F = 0
C = 0
Fx = 0
Fy = 0
Cx = 0
Cy = 0
t = []
for i in range(1, 11):
    a[i] = '*'
    a[i] += input()
    a[i] += '*'
for i in range(1, 11):
    for j in range(1, 11):
        if a[i][j] == 'F':
            Fx = j
            Fy = i
        if a[i][j] == "C":
            Cx = j
            Cy = i
count1 = 0


def go(x, y, d):
    global a
    if d == 0:
        if a[y - 1][x] != '*':
            x = x
            y = y - 1
        else:
            d = 1
    elif d == 1:
        if a[y][x + 1] != '*':
            x = x + 1
            y = y
        else:
            d = 2
    elif d == 2:
        if a[y + 1][x] != '*':
            x = x
            y = y + 1
        else:
            d = 3
    elif d == 3:
        if a[y][x - 1] != '*':
            x = x - 1
            y = y
        else:
            d = 0
    return x, y, d


while True:
    if Fx != Cx or Fy != Cy:
        j = (Fx - 1) + (Fy - 1) * 10 + F * 100 + (Cx - 1) * 1000 + (Cy - 1) * 10000 + C * 100000
        if j in t:
            print(0)
            break
        else:
            Fx, Fy, F = go(Fx, Fy, F)
            Cx, Cy, C = go(Cx, Cy, C)
            t.append(j)
            count1 += 1
    else:
        print(count1, end=None)
        break

2023/9/30 15:49
加载中...