#include <bits/stdc++.h>
#include "shoes.h"
typedef long long ll;
using namespace std;
ll brute(const vector<int> &p){
int n = p.size()/2;
ll ans = 1e18;
bool ok=true;
for (int i=0;i<n;i++){
if (p[2*i] > 0 || p[2*i+1] < 0 || (p[2*i] != -p[2*i+1])){
ok = false;
int cur=0;
vector<int> q = p;
int idx = (p[2*i]>0?2*i:2*i+1);
int j;
for (int l=0;l<n;l++) {
if (p[2*l]<0 && p[2*l+1]>0 && -p[2*l] == p[2*l+1]){
continue;
}
if (p[2*l] == -p[idx]) {
j = 2*l;
break;
}
if (p[2*l+1] == -p[idx]) {
j = 2*l+1;
break;
}
}
if (j <= idx){
for (int l=j;l+1<=idx;l++){
swap(q[l], q[l+1]);
cur++;
}
} else {
for (int l=j;l-1>=idx;l--){
swap(q[l], q[l-1]);
cur++;
}
}
ans = min(ans, brute(q)+cur);
}
}
return ok?0:ans;
}
ll count_swaps(vector<int> s) {
return brute(s);
}
# | 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... |