#include "shoes.h"
#include<bits/stdc++.h>
using namespace std;
template<typename T>
using vec = vector<T>;
using ll = long long;
using vll = vec<ll>;
using pll = pair<ll,ll>;
#define pb push_back
long long count_swaps(std::vector<int> s) {
ll n = s.size()>>1;
ll out = 0;
vll oop1, oop2;
for(ll i = 0; i < n; i++) {
map<ll,ll> dists;
for(ll j = 2*i; j < 2 * n; j++) {
if(s[j] > 0) {
if(not dists[s[j]]) dists[s[j]] = (j - (2*i));
else dists[s[j]] = min(dists[s[j]], j-(2*i));
} else {
if(not dists[s[j]]) dists[s[j]] = abs(j - (2*i)) - 1;
else dists[s[j]] = min(dists[s[j]], abs(j-(2*i))-1);
}
}
ll minshoe = -1;
ll mn = 1e18;
for(auto itr = dists.begin(); itr != dists.end(); itr++) {
ll shoe = abs(itr->first);
ll netDist = dists[shoe] + dists[-shoe];
if(netDist < mn) {
mn = netDist;
minshoe = shoe;
}
}
for(ll j = 2*i; j < 2*n; j++) {
if(s[j] == -minshoe) {
for(ll k = j; k > 2*i; k--) {
swap(s[k], s[k-1]);
out++;
}
break;
}
}
for(ll j = 2*i; j < 2*n; j++) {
if(s[j] == minshoe) {
for(ll k = j; k > 2*i+1; k--) {
swap(s[k], s[k-1]);
out++;
}
break;
}
}
}
// cerr << "Final array: ";
// for(int &x : s) cerr << x << " ";
// cerr << endl;
return out;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |