#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;
const int M = 2e5 + 1;
int fen[M];
void modify(int p,int x)
{
while (p<M)
fen[p]+=x,p+=p&-p;
}
int get(int p)
{
int ans=0;
while (p)
ans+=fen[p], p^=p&-p;
return ans;
}
long long count_swaps(vector<int> a)
{
int n=a.size();
queue<int> ind[n+1][2];
for (int i=0;i<n;i++)
modify(i+1,1);
long long ans=0;
for (int i=0;i<n;i++)
{
int x=abs(a[i]);
ind[x][a[i]>0].push(i);
if (min(ind[x][0].size(),ind[x][1].size())==1)
{
ans+=get(ind[x][0].front()), modify(ind[x][0].front()+1,-1);
ans+=get(ind[x][1].front()), modify(ind[x][1].front()+1,-1);
ind[x][0].pop(), ind[x][1].pop();
}
}
return ans;
}
# | 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... |