結果
| 問題 |
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")