Submission #1341577

#TimeUsernameProblemLanguageResultExecution timeMemory
1341577vjudge1Arranging Shoes (IOI19_shoes)C++20
10 / 100
7 ms452 KiB
#include <iostream>
#include <vector>

using namespace std;
int seen[1<<20];
vector<int> vec[1<<20];

long long count_swaps(vector<int> v){
	long long n = v.size() / 2, ans = 0;
	
	for (int i=0;i<n+n;i++){
		int s = abs(v[i]);
		if (vec[s].size() == 0 or v[vec[s].back()] == v[i])
			vec[s].push_back(i);
		else{
			int j = vec[s].back();
			for (int k=j+1;k<i;k++){
				if (!(seen[k] and seen[k] <= j))
					ans++;
			}
			seen[i] = j + 1;
			if (v[i] < 0)
				ans++;
			vec[s].pop_back();
		}
	}
	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...