#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;
long long count_swaps(vector<int> s) {
int n = s.size() / 2;
priority_queue<int, vector<int>, greater<int>> l[n + 3], r[n + 3];
for (int i = 0; i < 2 * n; i++) {
//cout << "LL";
if (s[i] < 0) l[abs(s[i])].push(i);
else r[s[i]].push(i);
}
long long ct = 0;
vector<int> vis(2 * n + 1, 1);
for (int i = 0; i < 2 * n; i++) {
if (!vis[i]) continue;
if (s[i] > 0) {
int u = s[i];
r[u].pop();
//cout << "1 " << i << ' ' << l[u].top() << ' ' << l[u].top() - i << '\n';
ct += l[u].top() - i;
vis[l[u].top()] = 0;
l[u].pop();
}
else {
int u = abs(s[i]);
l[u].pop();
//cout << "2 " << i << ' ' << r[u].top() << ' ' << r[u].top() - i - 1 << '\n';
ct += r[u].top() - i - 1;
vis[r[u].top()] = 0;
r[u].pop();
}
}
return ct;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |