結果
問題 |
No.274 The Wall
|
ユーザー |
👑 |
提出日時 | 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 |
ソースコード
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")