This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "shoes.h"
#include<bits/stdc++.h>
using namespace std;
const int maxn=200000+10;
int n;
struct fenwick{
long long fn[maxn];
void add(int l,int r,int w){
l++;
r++;
r++;
while(l<maxn){
fn[l]+=w;
l+=((-l)&l);
}
while(r<maxn){
fn[r]-=w;
r+=((-r)&r);
}
}
long long pors(int i){
i++;
long long ret=0;
while(i>0){
ret+=fn[i];
i-=((-i)&i);
}
return ret;
}
}fen;
map<int,deque<int>>mp;
long long count_swaps(std::vector<int> s) {
n=s.size();
long long mainres=0;
for(int i=0;i<n;i++){
if(mp[-s[i]].size()==0){
mp[s[i]].push_back(i);
continue;
}
auto x=mp[-s[i]].front();
mp[-s[i]].pop_front();
mainres+=(i-x-1)-fen.pors(x);
mainres+=(s[i]<0);
fen.add(x,i,1);
}
return mainres;
}
# | 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... |