Submission #1307491

#TimeUsernameProblemLanguageResultExecution timeMemory
1307491hectormedranoArranging Shoes (IOI19_shoes)C++20
10 / 100
1100 ms75864 KiB
#include <cstdio>
#include <cassert>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll count_swaps(vector<int> s) {
    ll inv = 0;
    ll n = s.size();
    n = n/2;
    vector<pair<ll, ll>> a;
    vector<queue<ll>> q(n+1);
    vector<ll> v;
    for(ll i=0;i<2*n;i++){
        if(s[i]<0){
            a.push_back({s[i], i});
            a.push_back({-s[i], -1});
        } else {
            q[s[i]].push(i);
        }
        v.push_back(i);
    }
    for(ll i=0;i<2*n;i++){
        if(a[i].first > 0){
            a[i].second = q[a[i].first].front();
            q[a[i].first].pop();
        }
    }
    for(ll i=0;i<2*n;i++){
        ll j=2*n-1;
        while(v[j] != a[i].second){j--;}
        for(ll k=j;j>i;j--){
            swap(v[j], v[j-1]);
            inv++;
        }
    }
	return inv;
}
#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...