結果
| 問題 |
No.629 グラフの中に眠る門松列
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-04-30 01:35:29 |
| 言語 | Ruby (3.4.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,116 bytes |
| コンパイル時間 | 113 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 12,544 KB |
| 最終ジャッジ日時 | 2024-09-14 17:37:04 |
| 合計ジャッジ時間 | 20,889 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 WA * 2 |
| other | AC * 32 WA * 4 |
コンパイルメッセージ
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]])
end
}
no