提出詳細
ソースコード
#!/usr/bin/python
# coding: utf-8
def run(n, m):
a = raw_input().split()
b = raw_input().split()
table = [[0 for _ in xrange(n)] for _ in xrange(m)]
for i in xrange(n):
if a[i] == b[0] or 1 in table[0]:
table[0][i] = 1
for i in xrange(m):
if a[0] == b[i] or 1 in [t[0] for t in table]:
table[i][0] = 1
for i in xrange(1, n):
for j in xrange(1, m):
if a[i] == b[j]:
table[j][i] = table[j-1][i-1] + 1
else:
table[j][i] = max(table[j][i-1], table[j-1][i])
print n + m - table[-1][-1]*2
if __name__ == "__main__":
for i in xrange(input()):
print "Case #%d:" % (i+1)
run(*map(int, raw_input().split()))
提出情報
提出出力結果
テストケース情報