#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
typedef long long ll;
const ll INF = 1e18;
const ll MOD = 1e9 + 7;
const ll MAXN = 1e6 + 5;
const ll LOG = 30;
#define vll vector <ll>
#define pll pair <ll, ll>
#define fi first
#define se second
#define endl '\n'
#define debug(x) cout << #x << " " << (x) << endl;
#include "shoes.h"
ll n;
vector <vll> a (MAXN);
ll b [MAXN], c [MAXN];
vector <pll> v;
ll ans = 0;
struct fenwickTree {
vll bit; ll sz;
fenwickTree(ll sz) : sz(sz), bit(sz+5) {}
ll lso(ll x){return x & -x;}
void add(ll idx, ll v){
for(ll i = idx; i <= sz; i += lso(i)) bit[i] += v;
}
ll get(ll idx){
if(idx == -1) return 0;
ll ret = 0;
for(ll i = idx; i >= 1; i -= lso(i)) ret += bit[i];
return ret;
}
ll sum(ll l, ll r){
return get(r) - get(l-1);
}
} ft (MAXN);
long long count_swaps(std::vector<int> s) {
n = s.size();
ll nw = 0;
for(ll i = 0; i < n; i++){
if(s[i] < 0){
a[-s[i]].push_back(++nw);
b[i] = nw*2;
}
}
for(ll i = 0; i < n; i++){
if(s[i] > 0){
b[i] = a[s[i]][c[s[i]]]*2+1;
c[s[i]]++;
}
}
for(ll i = 0; i < n; i++){
ft.add(b[i], 1);
ans += ft.sum(b[i]+1, MAXN);
}
return ans;
}