結果

問題 No.1677 mæx
ユーザー googol_S0googol_S0
提出日時 2021-09-10 21:44:08
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,202 ms / 2,000 ms
コード長 1,214 bytes
コンパイル時間 280 ms
コンパイル使用メモリ 86,704 KB
実行使用メモリ 91,692 KB
最終ジャッジ日時 2023-09-02 16:38:04
合計ジャッジ時間 20,493 ms
ジャッジサーバーID
(参考情報)
judge11 / judge14
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 73 ms
71,012 KB
testcase_01 AC 73 ms
71,192 KB
testcase_02 AC 75 ms
71,188 KB
testcase_03 AC 72 ms
71,212 KB
testcase_04 AC 1,195 ms
91,692 KB
testcase_05 AC 1,202 ms
91,420 KB
testcase_06 AC 1,145 ms
90,092 KB
testcase_07 AC 1,170 ms
90,416 KB
testcase_08 AC 1,178 ms
90,588 KB
testcase_09 AC 1,199 ms
91,092 KB
testcase_10 AC 1,176 ms
90,696 KB
testcase_11 AC 1,171 ms
91,008 KB
testcase_12 AC 1,173 ms
90,644 KB
testcase_13 AC 1,160 ms
90,720 KB
testcase_14 AC 1,114 ms
90,272 KB
testcase_15 AC 1,131 ms
91,124 KB
testcase_16 AC 1,164 ms
90,356 KB
testcase_17 AC 1,120 ms
90,628 KB
testcase_18 AC 1,150 ms
90,768 KB
testcase_19 AC 76 ms
71,104 KB
testcase_20 AC 73 ms
71,164 KB
testcase_21 AC 1,145 ms
90,760 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

S=input()
K=int(input())
mod=998244353
def mAx(a,b):
  r=[0]*3
  for i in range(3):
    for j in range(3):
      r[max(i,j)]=(r[max(i,j)]+a[i]*b[j])%mod
  return tuple(r)

def mex(a,b):
  if min(a,b)>0:
    return 0
  elif a==0 and b==0:
    return 1
  elif max(a,b)<2:
    return 2
  else:
    return 1

MEX=[[mex(i,j) for j in range(3)]for i in range(3)]

def mEx(a,b):
  r=[0]*3
  for i in range(3):
    for j in range(3):
      r[MEX[i][j]]=(r[MEX[i][j]]+a[i]*b[j])%mod
  return tuple(r)

def m_x(a,b):
  r=[0]*3
  for i in range(3):
    for j in range(3):
      r[MEX[i][j]]=(r[MEX[i][j]]+a[i]*b[j])%mod
      r[max(i,j)]=(r[max(i,j)]+a[i]*b[j])%mod
  return tuple(r)

Q=[]
N=len(S)
for i in range(N):
  if S[i]=='m':
    Q.append(['m'])
  elif S[i]=='?':
    if Q[-1]==['m']:
      Q[-1].append('_')
    else:
      Q.append((1,1,1))
  elif S[i]=='a' or S[i]=='e':
    Q[-1].append(chr(ord(S[i])-32))
  elif S[i]=='x':
    Q[-1].append('x')
    Q[-1]=''.join(Q[-1])
  elif S[i]=='(':
    continue
  elif S[i]==')':
    Q[-3]=eval(Q[-3]+'('+str(Q[-2])+','+str(Q[-1])+')')
    del Q[-1]
    del Q[-1]
  elif S[i]==',':
    continue
  else:
    x=[0,0,0]
    x[int(S[i])]=1
    Q.append(tuple(x))
print(Q[0][K])
0