Submission #1077518

#TimeUsernameProblemLanguageResultExecution timeMemory
1077518IgnutArranging Shoes (IOI19_shoes)C++17
50 / 100
1096 ms3260 KiB
// Ignut

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

ll count_swaps(vector<int> S) {
    ll res = 0;
    int n = S.size();
    for (int i = 1; i < n; i += 2) {
        int target = -S[i - 1];
        int j;
        for (j = i; j < n; j ++)
            if (S[j] == target)
                break;
        while (j > i) {
            swap(S[j - 1], S[j]);
            j --;
            res ++;
        }

        if (S[i - 1] > 0) {
            swap(S[i - 1], S[i]);
            res ++;
        }

        // if (i % 2 == 0) {
        //     int j;
        //     for (j = i; j < n; j ++)
        //         if (S[j] < 0) 
        //             break;
        //     while (j > i) {
        //         swap(S[j - 1], S[j]);
        //         j --;
        //         res ++;
        //     }
        // }
        // else {
        //     int j;
        //     for (j = i; j < n; j ++)
        //         if (S[j] == -S[i - 1])
        //             break;
        //     while (j > i) {
        //         swap(S[j - 1], S[j]);
        //         j --;
        //         res ++;
        //     }
        // }
    }
    
    // for (int sz = 1; sz <= n / 2; sz ++) {
    //     res += sz - 1;
    // }

    /*int pos = 0;
    for (int i = 0; i < n; i ++) {
        if (S[i] > 0) continue;
        res += abs(i - pos);
        pos += 2;
    }*/
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...