【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なので、行と列の全ての選び方を試し、その時の黒を数える。解説を見ると、当たりだった。




この記事が気に入ったらサポートをしてみませんか?