#include "shoes.h"
#include <bits/stdc++.h>
#define ii pair<int, int>
#define fi first
#define se second
#define inf 0x3f3f3f3f3f3f3f3f
using namespace std;
using ll = long long;
const ll mod=1e9+7;
const int nx=2e5+5;
set<int> l[nx], r[nx];
bool vis[nx];
ll count_swaps(vector<int> a)
{
ll ans=0;
int n=a.size();
for(int i = 0; i <= n; i++)
l[i].clear(), r[i].clear(), vis[i]=0;
for(int i = 0; i < n; i++)
if(a[i]<0) l[-a[i]].insert(i);
else r[a[i]].insert(i);
for(int i = 0; i < n; i++)
{
if(vis[i]) continue;
int x=abs(a[i]);
int pos;
if(a[i]<0) pos=*r[x].begin(), r[x].erase(pos), l[x].erase(i);
else pos=*l[x].begin(), l[x].erase(pos), ans++, r[x].erase(i);
vis[i]=vis[pos]=1;
ans+=pos-i-1;
}
return ans;
}
// int main()
// {
// cout<<count_swaps({2, 1, -1, -2});
// }
# | 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... |