結果
問題 | No.629 グラフの中に眠る門松列 |
ユーザー |
|
提出日時 | 2017-04-30 01:41:01 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 2,518 ms / 4,000 ms |
コード長 | 1,536 bytes |
コンパイル時間 | 276 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,672 KB |
最終ジャッジ日時 | 2024-09-14 17:37:57 |
合計ジャッジ時間 | 19,323 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 36 |
コンパイルメッセージ
Syntax OK
ソースコード
line = gets.chomp! abort "line 1 format error" unless line=~/^\d+ \d+$/ n,m = line.split.map &:to_i line = gets.chomp! abort "line 2 format error" unless line=~/^\d+(?: \d+)*$/ aa = line.split.map &:to_i abort "line 2 vector_size error" unless aa.size == n aa.unshift(nil) edges = [] m.times{|i| line = gets.chomp! abort "line #{i+3} format error" unless line=~/^\d+ \d+$/ edges << line.split.map(&:to_i) } abort "too many lines" unless !gets def yes;puts "YES";exit(0);end def no ;puts "NO"; exit(0);end def kadomatu?(a,b,c) a!=b&&b!=c&&c!=a&&((a<b&&b>c)||(a>b&&b<c)) end # 辺集合から2つ選ぶ組み合わせを全列挙 edges.combination(2){|pair| if pair[0][0] == pair[1][0] # pair[0][1] -> (pair[0][0] == pair[1][0]) -> pair[1][1] となっているケース yes if kadomatu?(aa[pair[0][1]], aa[pair[0][0]], aa[pair[1][1]]) elsif pair[0][0] == pair[1][1] # pair[0][1] -> (pair[0][0] == pair[1][1]) -> pair[1][0] となっているケース yes if kadomatu?(aa[pair[0][1]], aa[pair[1][1]], aa[pair[1][0]]) elsif pair[0][1] == pair[1][0] # pair[0][0] -> (pair[0][1] == pair[1][0]) -> pair[1][1] となっているケース yes if kadomatu?(aa[pair[0][0]], aa[pair[0][1]], aa[pair[1][1]]) elsif pair[0][1] == pair[1][1] # pair[0][0] -> (pair[0][1] == pair[1][1]) -> pair[1][0] となっているケース yes if kadomatu?(aa[pair[0][0]], aa[pair[0][1]], aa[pair[1][0]]) end } no