結果
| 問題 |
No.366 ロボットソート
|
| コンテスト | |
| ユーザー |
siman
|
| 提出日時 | 2020-10-16 06:46:32 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 272 ms / 2,000 ms |
| コード長 | 649 bytes |
| コンパイル時間 | 381 ms |
| コンパイル使用メモリ | 7,168 KB |
| 実行使用メモリ | 12,288 KB |
| 最終ジャッジ日時 | 2024-07-20 20:17:47 |
| 合計ジャッジ時間 | 3,648 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
コンパイルメッセージ
Main.rb:50: warning: ambiguous first argument; put parentheses or a space even after `-' operator Syntax OK
ソースコード
N, K = gets.split.map(&:to_i)
A = gets.split.map(&:to_i)
def inversion_count(arr)
cnt = 0
n = arr.size
n.times do
0.upto(n - 2) do |i|
next if arr[i] <= arr[i + 1]
cnt += 1
arr[i], arr[i + 1] = arr[i + 1], arr[i]
end
end
cnt
end
arrs = []
checked = Array.new(N, false)
N.times do |i|
next if checked[i]
arr = []
i.step(N - 1, K) do |j|
checked[j] = true
arr << A[j]
end
arrs << arr
end
res = Array.new(N)
ans = 0
arrs.each_with_index do |arr, s|
ans += inversion_count(arr)
s.step(N - 1, K) do |i|
res[i] = arr.shift
end
end
if res == A.sort
puts ans
else
puts -1
end
siman