結果

問題 No.2000 Distanced Characters
ユーザー simansiman
提出日時 2023-03-08 18:37:33
言語 Ruby
(3.3.0)
結果
TLE  
実行時間 -
コード長 655 bytes
コンパイル時間 77 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 21,276 KB
最終ジャッジ日時 2024-09-18 02:37:49
合計ジャッジ時間 5,062 ms
ジャッジサーバーID
(参考情報)
judge1 / judge6
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 77 ms
19,100 KB
testcase_01 AC 76 ms
12,288 KB
testcase_02 AC 71 ms
12,032 KB
testcase_03 AC 74 ms
12,288 KB
testcase_04 AC 95 ms
12,288 KB
testcase_05 AC 86 ms
12,160 KB
testcase_06 AC 78 ms
12,160 KB
testcase_07 AC 82 ms
12,288 KB
testcase_08 AC 365 ms
14,976 KB
testcase_09 TLE -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

S = gets.chomp
N = S.size
D = 26.times.map { gets.split.map(&:to_i) }
memo = Hash.new { |h, k| h[k] = [] }

N.times do |i|
  ch = S[i]

  memo[ch] << i
end

ans = []

26.times do |i|
  c1 = ('a'.ord + i).chr
  row = []

  26.times do |j|
    c2 = ('a'.ord + j).chr
    d = D[i][j]

    if memo[c1].empty? || memo[c2].empty?
      row << 'Y'
    else
      ok = true

      memo[c1].each do |x|
        res = memo[c2].bsearch { |y| y > x }

        if res && x + d > res
          ok = false
        end
      end

      if ok
        row << 'Y'
      else
        row << 'N'
      end
    end
  end

  ans << row
end

puts ans.map { |row| row.join(' ') }
0