Submission #760230

#TimeUsernameProblemLanguageResultExecution timeMemory
760230raysh07Arranging Shoes (IOI19_shoes)C++17
0 / 100
1 ms212 KiB
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;

long long count_swaps(std::vector<int> s) {
	long long ans = 0;
	int n = s.size() / 2;
	vector<pair<int, int>> a;
	vector<int> adj[n + 1];
	
	for (int i = 0; i < 2 * n; i++){
	    if (s[i] > 0) {
	        a.push_back({s[i], i});
	    } else {
	        adj[-s[i]].push_back(i);
	    }
	}
	
	for (int i = 1; i <= n; i++) reverse(adj[i].begin(), adj[i].end());
	
	int pos = 0;
	
	for (auto [y, x] : a){
	    ans += abs(y - pos);
	    ans += abs(adj[x].back() - pos - 1);
	    adj[x].pop_back();
	    pos += 2;
	}
	
	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...