結果
| 問題 |
No.265 数学のテスト
|
| コンテスト | |
| ユーザー |
tjake
|
| 提出日時 | 2015-12-22 21:08:08 |
| 言語 | Python2 (2.7.18) |
| 結果 |
AC
|
| 実行時間 | 328 ms / 2,000 ms |
| コード長 | 970 bytes |
| コンパイル時間 | 220 ms |
| コンパイル使用メモリ | 7,076 KB |
| 実行使用メモリ | 55,296 KB |
| 最終ジャッジ日時 | 2024-11-24 11:32:47 |
| 合計ジャッジ時間 | 4,065 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 32 |
ソースコード
import sys
n = input()
d = input()
s = raw_input()+"$"
sys.setrecursionlimit(500000)
def parseS(cur):
ret = [0]*(d+1)
while 1:
cur, res = parseE(cur)
for i in xrange(d+1):
ret[i] += res[i]
if s[cur]!="+":
break
cur += 1
return cur, ret
def parseE(cur):
ret = [0]*(d+1)
ret[0] = 1
while 1:
cur, res = parseP(cur)
ret = [sum(ret[j]*res[i-j] for j in xrange(i+1)) for i in xrange(d+1)]
if s[cur]!="*":
break
cur += 1
return cur, ret
def parseP(cur):
if s[cur]=="x":
# x
ret = [0]*(d+1); ret[1] = 1
return cur+1, ret
elif s[cur]=="d":
# d{T}
cur, res = parseS(cur+2)
ret = [i*res[i] for i in xrange(1, d+1)] + [0]
return cur+1, ret
else:
# 1~9
ret = [0]*(d+1); ret[0] = int(s[cur])
return cur+1, ret
cur, ans = parseS(0)
print " ".join(map(str, ans))
tjake