Submission #866980

#TimeUsernameProblemLanguageResultExecution timeMemory
866980MalixArranging Shoes (IOI19_shoes)C++14
50 / 100
1099 ms3528 KiB
#include "shoes.h"
#include<bits/stdc++.h>
using namespace std;

long long count_swaps(std::vector<int> s) {
	int n=s.size();
	int pos=0;
	vector<int> arr(n,0);
	vector<int> arr2(n,0);
	long long ans=0;
	while(pos<n){
		if(arr[pos]==1){
			pos++;continue;
		}
		if(s[pos]<0){
			long long it=find(s.begin(),s.end(),-s[pos])-s.begin();
			ans+=it-pos-1-arr2[pos]+arr2[it];
			s[pos]=0;s[it]=0;
			arr[pos]=1;arr[it]=1;
			for(int i=pos+1;i<it;i++)arr2[i]++;
		}
		else{
			long long it=find(s.begin(),s.end(),-s[pos])-s.begin();
			ans+=it-pos-arr2[pos]+arr2[it];
			s[pos]=0;s[it]=0;
			arr[pos]=1;arr[it]=1;
			for(int i=pos+1;i<it;i++)arr2[i]++;
		}
		pos++;
	}
	return ans;
}
#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...