Submission #8087483


Source Code Expand

local mfl = math.floor
local mod = 1000000007
local function bmul(x, y)
  local x0, y0 = x % 31623, y % 31623
  local x1, y1 = mfl(x / 31623), mfl(y / 31623)
  return (x1 * y1 * 14122 + (x1 * y0 + x0 * y1) * 31623 + x0 * y0) % mod
end
local function badd(x, y)
  return (x + y) % mod
end
local function getxor(x, y)
  local ret = 0
  local mul = 1
  while 0 < x or 0 < y do
    if (x % 2) + (y % 2) == 1 then
      ret = ret + mul
    end
    x, y, mul = mfl(x / 2), mfl(y / 2), mul * 2
  end
  return ret
end

local n, k = io.read("*n", "*n")
local lower = {}
local higher = {}
for i = 1, n do
  local a = io.read("*n")
  if a < 4096 then
    table.insert(lower, a)
  else
    table.insert(higher, a)
  end
end
local dp1, dp2 = {}, {}
for i = 1, 131072 do
  dp1[i] = 0
end
dp1[1] = 1
for ic = 1, #higher do
  for i = 1, 131072 do
    dp2[i] = 0
  end
  local v = higher[ic]
  for src = 0, 131071 do
    local dst = getxor(src, v)
    dp2[dst + 1] = dp1[src + 1]
  end
  for i = 1, 131072 do
    dp1[i] = badd(dp1[i], dp2[i])
  end
end
if k < 4096 then
  for ic = 1, #lower do
    for i = 1, 4096 do
      dp2[i] = 0
    end
    local v = lower[ic]
    for src = 0, 4095 do
      local dst = getxor(src, v)
      dp2[dst + 1] = dp1[src + 1]
    end
    for i = 1, 4096 do
      dp1[i] = badd(dp1[i], dp2[i])
    end
  end
  print(dp1[k + 1])
else
  for i = 1, 4096 do
    dp1[i] = 0
  end
  dp1[1] = 1
  for ic = 1, #lower do
    for i = 1, 4096 do
      dp2[i] = 0
    end
    local v = lower[ic]
    for src = 0, 4095 do
      local dst = getxor(src, v)
      dp2[dst + 1] = dp1[src + 1]
    end
    for i = 1, 4096 do
      dp1[i] = badd(dp1[i], dp2[i])
    end
  end
  local ret = 0
  for lowpos = 1, 4096 do
    local highpos = getxor(k, lowpos - 1) + 1
    ret = badd(ret, bmul(dp1[lowpos], dp1[highpos]))
  end
  print(ret)
end

Submission Info

Submission Time
Task F - Limited Xor Subset
User obakyan
Language LuaJIT (2.0.4)
Score 0
Code Size 1926 Byte
Status TLE
Exec Time 2103 ms
Memory 3456 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 3
AC × 28
TLE × 5
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_3.txt, subtask_1_30.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
Case Name Status Exec Time Memory
sample_01.txt AC 4 ms 1280 KB
sample_02.txt AC 4 ms 1280 KB
sample_03.txt AC 10 ms 1280 KB
subtask_1_1.txt AC 108 ms 2304 KB
subtask_1_10.txt AC 412 ms 2432 KB
subtask_1_11.txt AC 179 ms 2432 KB
subtask_1_12.txt AC 91 ms 2432 KB
subtask_1_13.txt AC 97 ms 2304 KB
subtask_1_14.txt AC 88 ms 2304 KB
subtask_1_15.txt AC 85 ms 2304 KB
subtask_1_16.txt AC 34 ms 2304 KB
subtask_1_17.txt AC 29 ms 2304 KB
subtask_1_18.txt TLE 2103 ms 3456 KB
subtask_1_19.txt TLE 2103 ms 2940 KB
subtask_1_2.txt AC 111 ms 2304 KB
subtask_1_20.txt AC 273 ms 1280 KB
subtask_1_21.txt AC 271 ms 1280 KB
subtask_1_22.txt AC 2 ms 1280 KB
subtask_1_23.txt AC 28 ms 2304 KB
subtask_1_24.txt AC 30 ms 2304 KB
subtask_1_25.txt TLE 2103 ms 2304 KB
subtask_1_26.txt AC 191 ms 1280 KB
subtask_1_27.txt AC 29 ms 2304 KB
subtask_1_28.txt AC 77 ms 2304 KB
subtask_1_29.txt AC 29 ms 2304 KB
subtask_1_3.txt AC 108 ms 2304 KB
subtask_1_30.txt AC 54 ms 2304 KB
subtask_1_4.txt AC 85 ms 2304 KB
subtask_1_5.txt AC 83 ms 2432 KB
subtask_1_6.txt TLE 2103 ms 1792 KB
subtask_1_7.txt TLE 2103 ms 1408 KB
subtask_1_8.txt AC 1203 ms 1408 KB
subtask_1_9.txt AC 482 ms 1280 KB