제출 #797481

#제출 시각아이디문제언어결과실행 시간메모리
797481LiudasArranging Shoes (IOI19_shoes)C++17
10 / 100
1 ms300 KiB
#include <bits/stdc++.h>
using namespace std;
long long count_swaps(vector<int> S){
    long long N = S.size();
    map<int, queue<int>> arr;
    set<int> left;
    long long ans = 0;
    for(int i = 0; i < N; i ++){
        left.insert(i);
        arr[S[i]].push(i);
    }
    for(int i = 0; i < N / 2; i ++){
        int s = *left.begin();
        left.erase(s);
        int b = arr[-S[s]].front();
        left.erase(b);
        arr[S[s]].pop();
        arr[-S[s]].pop();
        if(S[s] > 0){
            ans += b - s;
        }
        else{
            ans += b - s - 1;
        }
    }
    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...