結果

問題 No.274 The Wall
ユーザー 👑 obakyan
提出日時 2019-11-10 19:03:45
言語 Lua
(LuaJit 2.1.1734355927)
結果
WA  
実行時間 -
コード長 1,017 bytes
コンパイル時間 89 ms
コンパイル使用メモリ 5,376 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-15 05:02:53
合計ジャッジ時間 1,267 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 14 WA * 8
権限があれば一括ダウンロードができます

ソースコード

diff #

local n, m = io.read("*n", "*n")
local t = {}
local norm = {}
local inv = {}
for i = 1, n do
  local l, r = io.read("*n", "*n")
  t[i] = {l + 1, r + 1}
end
table.sort(t, function(x, y)
  if x[2] ~= y[2] then
    return x[1] < y[1]
  else
    return x[2] < y[2]
  end
end)
local used = {}
for i = 1, m do
  used[i] = false
end
while 0 < #t do
  local v = t[#t]
  table.remove(t)
  local vl = v[1]
  table.insert(norm, v)
  for i = #t, 1, -1 do
    if vl <= t[i][2] then
      table.insert(inv, t[i])
      table.remove(t)
    else
      break
    end
  end
end
local isok = true
for i = 1, #norm do
  for j = norm[i][1], norm[i][2] do
    if used[j] then
      isok = false
      break
    else
      used[j] = true
    end
  end
  if not isok then break end
end
for i = 1, #inv do
  local l = m + 1 - inv[i][2]
  local r = m + 1 - inv[i][1]
  for j = l, r do
    if used[j] then
      isok = false
      break
    else
      used[j] = true
    end
  end
  if not isok then break end
end
print(isok and "YES" or "NO")
0