結果
| 問題 | No.233 めぐるはめぐる (3) | 
| コンテスト | |
| ユーザー |  yuruhiya | 
| 提出日時 | 2020-10-21 19:10:34 | 
| 言語 | Crystal (1.14.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 282 ms / 1,000 ms | 
| コード長 | 699 bytes | 
| コンパイル時間 | 12,192 ms | 
| コンパイル使用メモリ | 297,548 KB | 
| 実行使用メモリ | 56,320 KB | 
| 最終ジャッジ日時 | 2024-06-30 21:27:24 | 
| 合計ジャッジ時間 | 18,011 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 11 | 
ソースコード
lib C
  fun strtoll(s : UInt8*, p : UInt8**, b : Int32) : Int64
end
class String
  def to_i64
    C.strtoll(self, nil, 10)
  end
end
vowel, cons = "iaaeuu", "nbmgr"
size = vowel.size + cons.size
strings = [] of String
(0...6).each { |vowel_pos|
  f = [0, 1] * 5
  f.insert({0, vowel_pos * 2 - 1}.max, 1)
  vowel.chars.each_permutation { |v|
    cons.chars.each_permutation { |c|
      v_i, c_i = -1, -1
      strings << (0...size).map { |i|
        if f[i] == 0
          c_i += 1
          c[c_i]
        else
          v_i += 1
          v[v_i]
        end
      }.join
    }
  }
}
n = read_line.to_i
s = (1..n).map { read_line }.to_set
puts strings.find { |str| !s.includes?(str) } || "NO"
            
            
            
        