結果

問題 No.1512 作文
ユーザー pocari
提出日時 2021-05-26 17:47:52
言語 Ruby
(3.4.1)
結果
TLE  
実行時間 -
コード長 901 bytes
コンパイル時間 50 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 31,360 KB
最終ジャッジ日時 2024-10-15 13:51:08
合計ジャッジ時間 4,640 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 4
other AC * 4 TLE * 1 -- * 33
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

def read_data
  $stdin.read.lines(chomp: true).drop(1)
end

def ok?(prev, value)
  if prev
    prev[-1] <= value[0]
  else
    true
  end
end

def solve(n, list, used, acc, max)
  if max.join.size < acc.join.size
    max = acc
  end
  list.each_with_index do |v, i|
    unless used[i]
      if ok?(acc.last, v)
        used[i] = true
        val = solve(n + 1, list, used, acc + [v], max)
        if max.join.size < val.join.size
          max = val
        end
        used[i] = false
      end
    end
  end
  max
end

def remove_error_data(list)
  list.find_all do |v|
    if v.size == 1
      true
    else
      v.chars.each_cons(2).all? do |a, b|
        a.codepoints.first <= b.codepoints.first
      end
    end
  end
end

def main
  list = read_data
  valid_list = remove_error_data(list)
  pattern = solve(0, valid_list, [false] * valid_list.size, [], [])
  puts pattern.join.size
end

main
0