Submission #1199961

#TimeUsernameProblemLanguageResultExecution timeMemory
1199961ElayV13Arranging Shoes (IOI19_shoes)C++20
30 / 100
1095 ms4676 KiB
#include "shoes.h"
#include "bits/stdc++.h"
using namespace std;

int get(vector < int > p , vector < int > s)
{
        vector < int > req;
        for(int i : p) req.push_back(-i) , req.push_back(i);
        int res = 0;
        for(int i = 0;i < req.size();i++)
        {
                if(s[i] == req[i]) continue;
                int first = -1;
                for(int j = i;j < s.size();j++)
                {
                        if(s[j] == req[i]) {first = j; break;}
                }
                int po = first;
                while(po != i)
                {
                        ++res;
                        swap(s[po] , s[po - 1]);
                        --po;
                }
        }
        return  res;
}

long long count_swaps(vector < int > s)
{
        int n = s.size() / 2;
        vector < int > p;
        for(int i = 0;i < s.size();i++)
        {
                if(s[i] > 0) p.push_back(s[i]);
        }
        sort(p.begin() , p.end());
        int res = get(p , s);
        while(next_permutation(p.begin() , p.end())) res = min(res , get(p , s));
        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...