結果

問題 No.1479 Matrix Eraser
コンテスト
ユーザー da_ab
提出日時 2021-04-16 23:14:41
言語 Python3
(3.14.3 + numpy 2.4.4 + scipy 1.17.1)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
WA  
実行時間 -
コード長 841 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 377 ms
コンパイル使用メモリ 20,704 KB
実行使用メモリ 72,696 KB
最終ジャッジ日時 2026-03-24 11:06:06
合計ジャッジ時間 126,217 ms
ジャッジサーバーID
(参考情報)
judge2_1 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 6 WA * 7 TLE * 26
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# 1479 Matrix Eraser

import numpy as np
from sys import stdin
readline=stdin.readline

h,w=map(int,readline().split())
A=np.array([list(map(int,readline().split()))])
for _ in range(1,h):
    A=np.append(A,np.array([list(map(int,readline().split()))]),axis=0)

cnt=0
while True:
    maxA=np.max(A)
    if maxA==0:
        break

    atMaxA=np.where(A==maxA)
    rowBinCnt=np.bincount(atMaxA[0])
    colBinCnt=np.bincount(atMaxA[1])
    rowBinCntMax=np.max(rowBinCnt)
    colBinCntMax=np.max(colBinCnt)
    if rowBinCntMax>=colBinCntMax:
        selectedRow=np.where(rowBinCnt==rowBinCntMax)[0][0]
        A[selectedRow]=np.where(A[selectedRow]==maxA,0,A[selectedRow])
    else:
        selectedCol=np.where(colBinCnt==colBinCntMax)[0][0]
        A[:,selectedCol]=np.where(A[:,selectedCol]==maxA,0,A[:,selectedCol])
    cnt+=1

print(cnt)


0