【AtCoder】ABC173 C - H and V
A, Bは問題なくクリア。やはりCで詰まる。Cをクリアすることが目下の目標。
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~で、分からなくて後回しにしていたABC 047 B - Snuke's Coloring 2 (ABC Edit) に似ている気がする。
行と列をいくつでも選んでいいし、選ばなくてもいい、というのが難しい。解決策が浮かばず、周辺をウロウロして終わった。
h,w,k=[int(i) for i in input().split()]
print(h,w,k)
#二次元配列の作成
#row行のsumリスト
list_2d=[]
row_sum_list=[]
for i in range(h):
p=list(input())
list_2d.append(p)
num=p.count("#")
row_sum_list.append(num)
print(list_2d)
print(row_sum_list)
#黒の初期値
b_initial=sum(row_sum_list)
print(b_initial)
#まず行のみで探す
#列のみ
#行と列
#初期値による場合分け
if list_2d.count("#")==k:
print(1)
elif list_2d.count("#")>k:
print(0)
else:
しかも、簡単なコードでなぜかエラーになる。
for i in range(h):
list_2d.append(input())
なぜ??
File "Main.py", line 11, in <module>
list_2d.append(input())
EOFError: EOF when reading a line
標準入力が空っぽの時に出るエラーらしいが、入力してるし…。ググっても分からず。AtCoderのコードテストでも同じエラーが出た。input()を一度、変数に渡すとエラーにはならない。謎。
あと、#の最初の個数を求めたかっがが、これででない??
b_initial=list_2d.count("#")
print(b_initial)
→出力0
<後日>
全探索かな。H, W<=6なので、行と列の全ての選び方を試し、その時の黒を数える。解説を見ると、当たりだった。
この記事が気に入ったらサポートをしてみませんか?