#40721: Python解法+想法:


s110106@gm.sysh.tc.edu.tw (37魏均叡)

學校 : 不指定學校
編號 : 263561
來源 : [111.246.74.128]
最後登入時間 :
2024-06-18 20:45:23
m932. 2. 蜜蜂觀察 -- 2024年1月APCS | From: [111.246.79.31] | 發表日期 : 2024-06-08 08:59

m, n, k = map(int, input().split())
hive = [list(input()) for _ in range(m)]    #輸入蜂巢
dire = list(map(int, input().split()))      #輸入前進方向
S = []
posii, posij = (m-1, 0)   #起點 #i為行j為列

for i in range(k):
  if dire[i] == 0:      #前進方向0:退一行,列不變
    posii = posii - 1
    if posii < 0: posii = posii + 1    #超過就回原位
  elif dire[i] == 1:      #前進方向1:行不變,列+1
    posij = posij +1
    if posij > n-1: posij = posij - 1
  elif dire[i] == 2:      #前進方向2:行+1,列+1
    posii = posii + 1
    posij = posij + 1
    if posii > m-1 or posij > n-1:   #超過就回原位
      posij -= 1
      posii = posii - 1
  elif dire[i] == 3:      #前進方向3:行+1,列不變
    posii = posii + 1
    if posii > m-1: posii = posii - 1   #超過就回原位
  elif dire[i] == 4:      #前進方向4:行不變,列-1
    posij = posij - 1
    if posij < 0: posij = posij + 1   #超過就回原位
  elif dire[i] == 5:      #前進方向5:行-1,列-1
    posii = posii - 1
    posij = posij - 1
    if posii < 0 or posij < 0:    #超過就回原位
      posii = posii + 1
      posij += 1
  S.append(hive[posii][posij])    #蜂巢代碼存成起來


single = ''.join(S)   #將陣列中的一個個字母變一個沒有空格的字串
print(single)     #輸出沒有空格的字串
norep = list(dict.fromkeys(S))   #字典鍵不能重複,存成一個列表
print(len(norep))     #輸出列表長度

 
ZeroJudge Forum