結果

問題 No.3724 Domination
コンテスト
ユーザー tomerun
提出日時 2026-09-19 13:58:55
言語 Crystal
(1.21.0 + ACL)
コンパイル:
crystal build -Donline_judge -o a.out --release --no-debug _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 744 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 11,099 ms
コンパイル使用メモリ 328,800 KB
実行使用メモリ 11,648 KB
最終ジャッジ日時 2026-09-19 13:59:21
合計ジャッジ時間 24,027 ms
ジャッジサーバーID
(参考情報)
judge7_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点 20 % AC * 7 WA * 1
満点 80 % AC * 50 WA * 2
合計 2.5 * 0% = 0 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

RND = Random.new(2)
read_line.to_i.times do
  solve()
end

def solve
  n = read_line.to_i
  r = read_line.split.map(&.to_i)
  c = read_line.split.map(&.to_i)
  if n == 2
    puts -1
    return
  end
  a = Array.new(n) { |i| Array.new(n, r[i]) }
  cnt = Array.new(n, 0)
  10.times do
    n.times { |i| a[i].fill(r[i]) }
    cnt.fill(0)
    cands = [] of Int32
    n.times do |x|
      cands.clear
      n.times do |y|
        if a[y][x] != c[x] && cnt[y] + 1 < (n + 1) // 2
          cands << y
        end
      end
      break if cands.empty?
      y = cands[RND.rand(cands.size)]
      a[y][x] = c[x]
      cnt[y] += 1
    end
    break if cnt.sum == n
  end
  if cnt.sum == n
    a.each { |r| puts r.join(" ") }
  else
    puts -1
  end
end
0