結果
| 問題 |
No.1972 Modulo Set
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-06-10 22:32:30 |
| 言語 | Crystal (1.14.0) |
| 結果 |
AC
|
| 実行時間 | 42 ms / 2,000 ms |
| コード長 | 605 bytes |
| コンパイル時間 | 16,158 ms |
| コンパイル使用メモリ | 296,692 KB |
| 実行使用メモリ | 17,376 KB |
| 最終ジャッジ日時 | 2024-10-05 01:36:32 |
| 合計ジャッジ時間 | 18,219 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 34 |
ソースコード
alias LL = Int64
macro chmin(x, y); {{x}} = {{y}} if {{x}} > {{y}}; end
macro chmax(x, y); {{x}} = {{y}} if {{x}} < {{y}}; end
macro yn(x); {{x}} ? "Yes" : "No"; end
# ---------------------------------------------------- :)
n, m = read_line.split.map(&.to_i64)
a = read_line.split.map(&.to_i64.% m)
amax = a.max
at = a.tally
b = at.to_a.sort_by!{|e| -e[1]}
# p! at
at.size.times do |i|
num, cnt = b[i]
next if at[num] == 0
if (num+num) % m == 0
at[num] = 1
next
end
j = m - num
while j <= amax
if at[j]?
at[j] = 0
end
j += m
end
end
# p! at
puts at.values.sum