結果

問題 No.408 五輪ピック
コンテスト
ユーザー wotsushi
提出日時 2017-02-18 11:54:25
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
AC  
実行時間 156 ms / 5,000 ms
コード長 568 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 49 ms
コンパイル使用メモリ 9,216 KB
実行使用メモリ 22,304 KB
最終ジャッジ日時 2026-06-03 20:34:43
合計ジャッジ時間 5,281 ms
ジャッジサーバーID
(参考情報)
judge2_1 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 32
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
raw source code

require 'set'

N, M = gets.split.map(&:to_i)
A, B = (1..M).map {gets.split.map(&:to_i)}.transpose
e = if M == 0
      []
    else
      A.zip(B)
    end
d1 = Array.new(N + 1, false)
e.each {|a, b|
  d1[a] ||= (b == 1)
  d1[b] ||= (a == 1)
}
d2 = Array.new(N + 1) {Set.new}
e.each {|a, b|
  if d1[a]
    d2[b].add(a)
  end
  if d1[b]
    d2[a].add(b)
  end
}
ans = if e.any? {|a, b|
           a != 1 and b != 1 and (not d2[a].empty?) and (not d2[b].empty?) and
           (d2[a] | d2[b] | Set[a, b]).size >= 4}
        "YES"
      else
        "NO"
      end
puts ans
0