ABC343 B問題の解説(Python)

はじめに

AtCoder Beginner Contest(略称:ABC)とは、AtCoderが開催している、競技プログラミングコンテストのことです。

今回はABC343のB問題を解説していきます。

ABC343 B – Adjacency Matrix

問題

問題

N 頂点の単純無向グラフとその隣接行列 A が与えられます。頂点 i と直接結ばれている頂点の番号を昇順に出力する問題です。

隣接行列 A は \(A_{i,i}=1\) であるとき、またそのときに限り頂点 i と頂点 j を結ぶ辺を持ちます。

制約

  • \(2 \leqq N \leqq 100\)
  • \(A_{i,j} \in \{0, 1\}\)
  • \(A_{i,i}=0\)
  • \(A_{i,j}=A_{j,i}\)

思考の筋道

行列Aの要素数は100×100のため、全探索可能です。

各行ごとに、値が1のインデックスを保存し、まとめて出力しましょう。

コード

from sys import stdin
N = int(input())
A = [list(map(int, stdin.readline().split())) for _ in range(N)]

for row in A:
    l = []
    for i in range(N):
        if row[i] == 1:
            l.append(i + 1)
    print(*l)

リンク