1581 問題 J: 藍橋杯算法提高VIP-密碼鎖
時間限制: 1s
內存限制: 128MB 提交: 493 解決: 183
題目描述
你獲得了一個據(jù)說是古代瑪雅人制作的箱子。你非常想打開箱子看看里面有什么東西,但是不幸的是,正如所有故事里一樣,神秘的箱子出現(xiàn)的時候總是會掛著神秘的鎖。
這個鎖上面看起來有 N 個數(shù)字,它們排成一排,并且每個數(shù)字都在 0 到 2 之間。你發(fā)現(xiàn)你可以通過鎖上的機關來交換相鄰兩個數(shù)字的順序。比如,如果原來有 5 個數(shù)字 02120,在一次交換以后你就可以得到 20120,01220,02210 或者 02102。
根據(jù)你所搜集的情報,這個鎖在上面存在某連續(xù)四個數(shù)字是“2012”的時候會自動打開。現(xiàn)在,你需要計算一下,你至少需要進行多少次交換操作才能打開這把鎖?
對樣例的解釋
把前兩個數(shù)字交換以后,鎖上的數(shù)字是 20120,其中存在連續(xù)四個數(shù)字2, 0, 1, 2,因此鎖會打開。
輸入
輸入數(shù)據(jù)的第一行有一個正整數(shù) N。(4 ≤ N ≤ 13) 輸入數(shù)據(jù)的第二行有 N 個數(shù)字 a1,a2, ..., aN ,其中 ai 表示這個鎖上面第 i 個數(shù)字的值,滿足 0 ≤ ai ≤ 2。這些數(shù)字之間沒有空格分隔。
輸出
你只需要輸出一個數(shù)字,即你至少需要的交換次數(shù)。如果無論如何都沒有希望打開這把鎖,輸出 -1。
提示
零基礎同學可以先學習
視頻課程,包含C/C++、Python、百練、藍橋杯輔導、算法數(shù)據(jù)結構等課程,提供視頻講解以及配套習題,還有老師答疑,
點擊這里了解課程詳情