結果

問題 No.482 あなたの名は
ユーザー 👑 obakyan
提出日時 2019-05-01 21:43:26
言語 Lua
(LuaJit 2.1.1734355927)
結果
AC  
実行時間 70 ms / 2,000 ms
コード長 669 bytes
コンパイル時間 328 ms
コンパイル使用メモリ 6,820 KB
実行使用メモリ 7,168 KB
最終ジャッジ日時 2024-12-31 12:41:07
合計ジャッジ時間 2,709 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #

local ior = io.input()
local n, k = ior:read("*n", "*n")
local t = {}
local searched = {}
for i = 1, n do
  t[i] = ior:read("*n")
  searched[i] = false
end

local npos = 1
function getnext()
  for i = npos, n do
    if(not searched[i]) then
      npos = i + 1
      return i
    end
  end
  return nil
end

local cur = getnext()
local needcount = 0
while(cur ~= nil) do
  searched[cur] = true
  local epos = cur
  local len = 0
  while(t[cur] ~= epos) do
    cur = t[cur]
    len = len + 1
    searched[cur] = true
  end
  needcount = needcount + len
  cur = getnext()
end
if(k < needcount) then print("NO")
else
  print((needcount - k) % 2 == 0 and "YES" or "NO")
end
0