Submission #1033911

#TimeUsernameProblemLanguageResultExecution timeMemory
1033911amirhoseinfar1385Arranging Shoes (IOI19_shoes)C++17
100 / 100
328 ms149080 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...