제출 #1264765

#제출 시각아이디문제언어결과실행 시간메모리
1264765eduardmmArranging Shoes (IOI19_shoes)C++20
10 / 100
1 ms328 KiB
#include <vector>
#include <bits/stdc++.h>

long long count_swaps(std::vector<int> S){

    int n = S.size();

    std::vector<std::vector<int>> ind(n + 1);
    long long ans = 0;

    for (int i = 0; i < n; ++i){
        int u = S[i];

        if (ind[abs(u)].size() == 0){
            ind[abs(u)].push_back(i);
            continue;
        }
        
        int v = ind[abs(u)].back();
        v = S[v];
        if (std::signbit(v) != std::signbit(u)){
            ans += i - ind[abs(u)].back() - 1;
            if (v > 0 && u < 0) ans++;

            ind[abs(u)].pop_back();
        }
    }

    return ans;
}
#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...