結果

問題 No.274 The Wall
ユーザー YosukeKawadaYosukeKawada
提出日時 2018-01-09 15:52:34
言語 Ruby
(3.3.0)
結果
AC  
実行時間 1,717 ms / 2,000 ms
コード長 913 bytes
コンパイル時間 93 ms
コンパイル使用メモリ 7,680 KB
実行使用メモリ 46,976 KB
最終ジャッジ日時 2024-06-22 02:22:15
合計ジャッジ時間 16,060 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 90 ms
12,416 KB
testcase_01 AC 89 ms
12,288 KB
testcase_02 AC 87 ms
12,416 KB
testcase_03 AC 100 ms
12,288 KB
testcase_04 AC 89 ms
12,416 KB
testcase_05 AC 89 ms
12,288 KB
testcase_06 AC 88 ms
12,288 KB
testcase_07 AC 90 ms
12,288 KB
testcase_08 AC 89 ms
12,160 KB
testcase_09 AC 92 ms
12,160 KB
testcase_10 AC 89 ms
12,288 KB
testcase_11 AC 95 ms
12,544 KB
testcase_12 AC 1,684 ms
46,720 KB
testcase_13 AC 107 ms
12,544 KB
testcase_14 AC 341 ms
18,048 KB
testcase_15 AC 744 ms
26,880 KB
testcase_16 AC 98 ms
12,672 KB
testcase_17 AC 97 ms
12,416 KB
testcase_18 AC 98 ms
12,544 KB
testcase_19 AC 1,364 ms
42,752 KB
testcase_20 AC 1,557 ms
45,056 KB
testcase_21 AC 1,608 ms
45,696 KB
testcase_22 AC 1,360 ms
46,976 KB
testcase_23 AC 1,393 ms
46,848 KB
testcase_24 AC 1,717 ms
46,976 KB
testcase_25 AC 1,711 ms
46,976 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N,M = $stdin.gets.chomp.split(" ").map{ |a| a.to_i }

lines = []
N.times {
  l,r = $stdin.gets.chomp.split(" ").map{ |a| a.to_i }
  lines << [l,r]
}
#p lines

$connection = (0...lines.size).map { |i|
  l0,r0 = *lines[i]
  vl0,vr0 = M-1-r0,M-1-l0
  (0...lines.size).map { |j|
    next nil if i == j
    l1,r1 = *lines[j]
    ok1 = (r0 < l1 || r1 < l0)
    ok2 = (vr0 < l1 || r1 < vl0)
    case
    when  ok1 && !ok2; +1
    when !ok1 &&  ok2; -1
    when  ok1 &&  ok2; nil
    when !ok1 && !ok2
      puts "NO"
      exit
    end
  }
}

#p $connection

$status = (0...N).map{ nil }

def digger(i, expected = nil)
  if $status[i]
    if expected
      if expected != $status[i]
        puts "NO"
        exit
      end
    end
    return
  end

  $status[i] = expected || +1
  $connection[i].each_with_index { |c,j|
    next unless c
    digger(j,$status[i]*c)
  }
end

(0...N).each { |i|
  digger(i)
}

puts "YES"
0