Submission #1261076

#TimeUsernameProblemLanguageResultExecution timeMemory
1261076MegalosaurusArranging Shoes (IOI19_shoes)C++20
50 / 100
222 ms30160 KiB
#include "shoes.h" // #include "grader.cpp" #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include<bits/stdc++.h> using namespace __gnu_pbds; using namespace std; #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> long long count_swaps(std::vector<int> s) { int n = s.size(); map<int,set<int>>mp; for(int i = 0; i < n; i++) { mp[s[i]].insert(i); } ordered_set os; int ans = 0; for(int i = 0; i < n; i++) { if(os.find(i) != os.end()) continue; int sz = os.size(); int idx = *mp[-s[i]].upper_bound(i); int a = sz-os.order_of_key(i), b = sz-os.order_of_key(idx); ans += idx-i-a+b-1; if(s[i] > 0) ans++; os.insert(idx); mp[-s[i]].erase(idx); } 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...