Submission #706088

#TimeUsernameProblemLanguageResultExecution timeMemory
706088NonozeArranging Shoes (IOI19_shoes)C++14
10 / 100
1 ms304 KiB
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;

long long count_swaps(vector<int> s) {
	int n=s.size();
	vector<int> cnt[(int)2*n+5];
	vector<int> used(2*n+5, 0);
	vector<bool> visited(2*n+5, false);
	long long comp=0;
	for (int i = 0; i < n; ++i)
	{
		cnt[s[i]+n].push_back(i);
	}
	for (int i = 0; i < n; ++i)
	{
		if (visited[i]) continue;
		int recherche=(-1*s[i])+n;
		if (s[i]<0) comp--;
		//cout << recherche << " " << n << " ";
		comp+=cnt[recherche][used[recherche]]-i;
		//cout << cnt[recherche][used[recherche]] << endl;
		visited[cnt[recherche][used[recherche]]]=true;
		used[recherche]++;
		used[s[i]+n]++;
	}
	cout << endl;
	return comp;
}
#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...