제출 #143284

#제출 시각아이디문제언어결과실행 시간메모리
143284mat_vArranging Shoes (IOI19_shoes)C++14
10 / 100
1079 ms18424 KiB
#include "shoes.h"
#include <bits/stdc++.h>
#include <cstdio>
#include <cassert>
#define pb push_back

using namespace std;

int n;
vector<int> tike[200005][2];
int dokle[200005][2];
long long count_swaps(std::vector<int> s) {
    n = s.size()/2;
    for(int i=0; i<2*n; i++){
        if(s[i] < 0)tike[abs(s[i])][0].pb(i);
        else tike[s[i]][1].pb(i);
    }
    int l = 0;
    long long res = 0;
    while(l < 2*n){
        int koji = abs(s[l]);
        int ind = 0;
        if(s[l] < 0)ind = 1;
        int gde = tike[koji][ind][dokle[koji][ind]];
        while(gde > l+1){
            //cout << gde << endl;
            swap(s[gde], s[gde-1]);
            res++;
            gde--;
        }
        dokle[koji][ind]++;
        dokle[koji][ind^1]++;
        if(!ind)res++;
        l += 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...