結果
| 問題 |
No.1360 [Zelkova 4th Tune] 協和音
|
| コンテスト | |
| ユーザー |
gmm_tea
|
| 提出日時 | 2021-01-22 21:54:49 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 587 ms / 2,000 ms |
| コード長 | 593 bytes |
| コンパイル時間 | 1,357 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 16,640 KB |
| 最終ジャッジ日時 | 2024-12-28 00:02:04 |
| 合計ジャッジ時間 | 15,730 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 47 |
コンパイルメッセージ
Syntax OK
ソースコード
n=gets.to_i
a=gets.split.map(&:to_i)
b=[]
n.times do
b << gets.split.map(&:to_i)
end
# n=18
# a=[1000000000]*n
# b=[]
# n.times do
# b << [1000000000]*n
# end
d=[0,a[0]]
dk=2
dkk=1
dki=0
m=a[0]
mi=1
2.upto(2**n-1) do |di|
if di==dk
dki+=1
dkk=dk
dk*=2
end
# dki は今の2進数桁数 - 1
# dk は次に位が上がるとき
c=a[dki]+d[di-dkk]
(dki-1).downto(0) do |i|
if di[i]==1
c+=b[dki][i]
end
end
d << c
# p [di.to_s(2),c]
if m<c
m=c
mi=di
end
end
puts m
l=[]
n.times do |i|
if mi[i]==1
l << i+1
end
end
puts l.join(" ")
gmm_tea