WARush

SRMの結果とか、解けた問題のコードを書いていきます

SRM662 Div1 Easy "FoxesOfTheRoundTable"

解法

以下の通りです。orz
mayokoex.hatenablog.com

事後

D=1~1000まで全探索すればいいや。

実装に手間取る

ふぅ・・・なんとか時間ぎりぎりにコミット

WA

SRM662でググる

Greedyかよ!!

ソースコード

class FoxesOfTheRoundTable {
    public:
    vector<int> minimalDifference(vector<int> _h) {
        int n = _h.size();

        // ソートする
        int h[55];
        int hi[55];
        for (int i = 0; i < n; i++) {
            h[i] = _h[i];
            hi[i] = i;
        }
        while (true) {
            bool update = false;
            for (int i = 0; i < n - 1; i++) {
                if (h[i] > h[i + 1]) {
                    swap(h[i], h[i + 1]);
                    swap(hi[i], hi[i + 1]);
                    update = true;
                }
            }
            if (!update) break;
         }
         
         // 行き
         vector<int> ans;
         for (int i = 0; i < n; i += 2) {
             ans.push_back(hi[i]);
         }

         // 帰り
         int start = n % 2 == 0 ? n - 1 : n - 2;
         for (int i = start; i > 0; i -= 2) {
             ans.push_back(hi[i]);
         }

        return ans;
    }
};