結果

問題 No.1972 Modulo Set
コンテスト
ユーザー mai
提出日時 2022-06-10 22:28:43
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
AC  
実行時間 121 ms / 2,000 ms
コード長 366 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 242 ms
コンパイル使用メモリ 8,960 KB
実行使用メモリ 31,312 KB
最終ジャッジ日時 2026-04-20 17:33:20
合計ジャッジ時間 4,674 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 34
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.rb:14: warning: '+' after local variable or literal is interpreted as binary operator even though it seems like unary operator
Syntax OK

ソースコード

diff #
raw source code

def lscan; gets.split.map(&:to_i); end
n, m = lscan


total = 0

cnt0 = 0
cnth = 0
h = Hash.new(0)
lscan.each do |a|
  d = a%m
  if d == 0
    cnt0 += 1
  elsif d +d == m
    cnth += 1
  else
    h[d] += 1
  end
end

total += [0, cnt0-1].max
total += [0, cnth-1].max

h.keys.each do |k|
  k2 = m - k
  total += [h[k],h[k2]].min
  h[k] = 0
  h[k2] = 0
end

p n-total
0