제출 #1196396

#제출 시각아이디문제언어결과실행 시간메모리
1196396stdfloatArranging Shoes (IOI19_shoes)C++20
100 / 100
435 ms146764 KiB
#include <bits/stdc++.h> #include "shoes.h" // #include "grader.cpp" using namespace std; using ll = long long; ll count_swaps(vector<int> s) { int n = (int)s.size(); s.insert(s.begin(), 0); map<int, queue<int>> m; for (int i = 1; i <= n; i++) m[s[i]].push(i); vector<int> fn(n + 1); auto upd = [&](int x) { for (int i = x; i <= n; i += i & -i) fn[i]++; }; auto fnd = [&](int x) { int res = 0; for (int i = x; i > 0; i -= i & -i) res += fn[i]; return res; }; ll cnt = 0; for (int i = 1; i <= n; i++) { if (i != m[s[i]].front()) continue; m[s[i]].pop(); int j = m[-s[i]].front(); m[-s[i]].pop(); cnt += j - i - (fnd(j) - fnd(i)) - (s[i] < 0); upd(j); } return cnt; }
#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...