Submission #1351383

#TimeUsernameProblemLanguageResultExecution timeMemory
1351383ElayV13Arranging Shoes (IOI19_shoes)C++20
10 / 100
1096 ms6812 KiB
#include "shoes.h"
#include "bits/stdc++.h"
using namespace std;

#define ll long long

ll get(vector<int>f,vector<int>s){
      ll res=0;
      for(int i=0;i<f.size();i++){
            if(f[i]==s[i]) continue;
            int fi=-1;
            for(int j=i+1;j<f.size();j++){
                  if(s[j]==f[i]){
                        fi=j;
                        break;
                  }
            }
            while(1){
                  if(fi==i) break;
                  ++res;
                  swap(s[fi],s[fi-1]);
                  fi--;
            }
      }
      return res;
}

ll count_swaps(vector<int>s)
{
      int n=(int)s.size();
      vector<int>f1,f2;
      for(int i=0;i<n;i++){
            if(s[i]>0){
                  f1.push_back(-s[i]);
                  f1.push_back(s[i]);
            }
      }
      for(int i=0;i<n;i++){
            if(s[i]<0){
                  f2.push_back(s[i]);
                  f2.push_back(-s[i]);
            }
      }
      return min(get(f1,s),get(f2,s));
}
#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...