結果
| 問題 | 
                            No.258 回転寿司(2)
                             | 
                    
| コンテスト | |
| ユーザー | 
                            👑  | 
                    
| 提出日時 | 2019-09-17 15:53:12 | 
| 言語 | Lua  (LuaJit 2.1.1734355927)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 4 ms / 2,000 ms | 
| コード長 | 832 bytes | 
| コンパイル時間 | 161 ms | 
| コンパイル使用メモリ | 6,684 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-07-07 13:15:38 | 
| 合計ジャッジ時間 | 4,017 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 67 | 
ソースコード
local n = io.read("*n")
local v = io.read("*n")
local ta, tb = {}, {}
ta[1] = {v, "1"}
tb[1] = {0, "0"}
local mma = math.max
for i = 2, n do
  v = io.read("*n")
  if ta[i - 1][1] < tb[i - 1][1] + v then
    ta[i] = {tb[i - 1][1] + v, tb[i - 1][2] .. "1"}
  else
    ta[i] = {ta[i - 1][1], ta[i - 1][2] .. "0"}
  end
  if ta[i - 1][1] < tb[i - 1][1] then
    tb[i] = {tb[i - 1][1], tb[i - 1][2] .. "0"}
  else
    tb[i] = {ta[i - 1][1], ta[i - 1][2] .. "0"}
  end
end
if ta[n][1] < tb[n][1] then
  print(tb[n][1])
  local tbl = {}
  for i = 1, n do
    if tb[n][2]:sub(i, i) == "1" then
      table.insert(tbl, i)
    end
  end
  print(table.concat(tbl, " "))
else
  print(ta[n][1])
  local tbl = {}
  for i = 1, n do
    if ta[n][2]:sub(i, i) == "1" then
      table.insert(tbl, i)
    end
  end
  print(table.concat(tbl, " "))
end