pontz_rwのブログ

プログラミング等の備忘録

ITP1_7_C: Spreadsheet

表計算 | プログラミング入門 | Aizu Online Judge

行列に関する問題

はじめに、r × c の表を作成します。
次に、各行の合計をappend()を使用してmatrixの各行の最後に結合し、 r × (c + 1) の表を作成します。
そして、各列の合計をzip()を使用して、matrixの最後に結合し、 (r + 1) × (c + 1) の表を作成します。

解答

r, c = map(int, input().split())

matrix = [list(map(int, input().split())) for _ in range(r)]

for i in range(r):
    matrix[i].append(sum(matrix[i]))

matrix.append(list(map(sum, zip(*matrix))))
# matrix.append([sum(i) for i in zip(*matrix)])

for row in matrix:
    print(' '.join(str(e) for e in row))