Submission #583289

#TimeUsernameProblemLanguageResultExecution timeMemory
583289LucppArranging Shoes (IOI19_shoes)C++17
10 / 100
1 ms300 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; #define sz(x) ((int)(x).size()) vector<int> fen; void add(int i, int x){ for(i++; i < sz(fen); i+=i&-i) fen[i] += x; } int qry(int i){ int ans = 0; for(i++; i > 0; i-=i&-i) ans += fen[i]; return ans; } ll count_swaps(vector<int> s) { fen.resize(sz(s)+1); vector<queue<int>> v(sz(s)/2+1); for(int i = 0; i < sz(s); i++){ if(s[i] > 0) v[s[i]].push(i); } ll ans = 0; for(int i = 0; i < sz(s); i++){ if(s[i] > 0) continue; int L = i+qry(i); int R = v[-s[i]].front(); v[-s[i]].pop(); R += qry(R); ans += abs(R-L)-(R>L); add(R, 1); add(L, -1); } return ans; }
#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...