Submission #1351391

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

#define ll long long

bool cmp(pair<int,int>&a,pair<int,int>&b){
      int mn1=min(a.first,a.second);
      int mn2=min(b.first,b.second);
      return mn1<mn2;
}

ll count_swaps(vector<int>s)
{
      int n=(int)s.size();
      vector<int>P[n+1],N[n+1];
      for(int i=0;i<n;i++){
            if(s[i]>0) P[s[i]].push_back(i);
            else N[abs(s[i])].push_back(i);
      }
      vector<pair<int,int>>all;
      for(int val=1;val<=n;val++){
            for(int i=0;i<P[val].size();i++) all.push_back({P[val][i],N[val][i]});
      }
      sort(all.begin(),all.end(),cmp);
      vector<int>act(n,1);
      ll res=0;
      for(pair<int,int>p:all){
            int i=p.first,j=p.second;
            if(i<j) ++res;
            for(int ii=i+1;ii<=j-1;ii++) res+=act[ii];
            act[i]=0;
            act[j]=0;
      }
      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...