제출 #975575

#제출 시각아이디문제언어결과실행 시간메모리
975575marinalucaArranging Shoes (IOI19_shoes)C++14
100 / 100
265 ms147836 KiB
#include <bits/stdc++.h>

#pragma GCC optimize ("O4")
#pragma GCC optimize ("fast-math")
#pragma GCC optimize ("unroll-loops")

using namespace std;
//#define int long long
#define ll long long
#define xx first
#define yy second
#define all (x) begin(x), end(x)
#define cin fin
#define cout fout

ll count_swaps(vector <int> s){
    int n = int (s.size());
    unordered_map <int, queue<int>> frec;
    vector <int> bit(n + 1);
    ll cnt = 0;
    for (int i = 0; i < n; ++ i)
    {
        int poz;
        if (frec[-s[i]].empty()){
            poz = i + 1;
            frec[s[i]].push(poz);
        }
        else{
            poz = frec[-s[i]].front();
            frec[-s[i]].pop();
            cnt += i;
            for (int ans = poz; ans; ans -= ans & (-ans))
                cnt -= bit[ans];
            if (s[i] < 0)
                cnt ++;
        }
        for (int ans = poz; ans <= n; ans += ans & (-ans))
            bit[ans] ++;
    }
    return cnt;
}
#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...