白駿16198号:蓄電-Swift


https://www.acmicpc.net/problem/16198
難易度銀1🥈
アルゴリズム分類:dfs、brootfors
🧐 質問へのアクセス
見ればdfsを探せばいいと思う
完全なコード
import Foundation

let n = Int(readLine()!)!
let arr = readLine()!.split(separator: " ").map{Int(String($0))!}

var res = Int.min

func dfs(_ arr: [Int], _ sum: Int, _ len: Int) {
    if len == 2 {
        res = max(res, sum)
        return
    }
    
    for i in 1..<len-1 {
        dfs(Array(arr[..<i]+arr[(i+1)...]), sum + arr[i-1] * arr[i+1], len - 1)
    }
}

dfs(arr, 0, arr.count)
print(res)
1行の評価:Silver 1にとって、これは非常に容易なdfsナビゲーションであるようだ.