# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
500494 | Khizri | Arranging Shoes (IOI19_shoes) | C++17 | 19 ms | 3020 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;
int res=1e7;
map<vector<int>,int>mp;
bool check(vector<int>&vt){
for(int i=0;i<vt.size();i+=2){
if(vt[i]<0&&vt[i+1]>0&&abs(vt[i])==vt[i+1]){
}
else{
return false;
}
}
return true;
}
void funk(vector<int>vt,int ans,int u,int v){
if(u!=v){
swap(vt[u],vt[v]);
ans++;
}
if(check(vt)){
res=min(res,ans);
return;
}
if(mp[vt]>0&&mp[vt]<=ans) return;
mp[vt]=ans;
for(int i=0;i<vt.size()-1;i++){
funk(vt,ans,i,i+1);
}
}
long long count_swaps(vector<int> s) {
if(s.size()<=4){
funk(s,1,-1,-1);
return res-1;
}
long long n=s.size();
return n*(n-1)/2;
}
Compilation message (stderr)
# | 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... |