Submission #1144936

#TimeUsernameProblemLanguageResultExecution timeMemory
1144936MunkhturErdenebatArranging Shoes (IOI19_shoes)C++20
10 / 100
0 ms328 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; long long count_swaps(vector<int> s) { int n = s.size(); unordered_map<int, vector<int>> vas; unordered_map<int, int> mee; unordered_map<int, int> visited; vector<int> vii; for (int i = 0; i < n; i++) { vas[s[i]].push_back(i); } long long sum = 0; for (int i = 0; i < n; i++) { if (visited[i] == 0) { int l = 0, r = vii.size() - 1, g; while (l < r) { int m = (l + r - 1) / 2; if (vii[m] > i) { r = m; } else { l = m + 1; } } g = l; l = 0, r = vii.size() - 1; while (l < r) { int m = (l + r + 1) / 2; if (vii[m] > vas[-s[i]][mee[-s[i]]]) { r = m - 1; } else { l = m; } } vii.push_back(vas[-s[i]][mee[-s[i]]]); sort(vii.begin(), vii.end()); sum += vas[-s[i]][mee[-s[i]]]-i-l + g -1; if(s[i]>0){ sum++; } visited[vas[-s[i]][mee[-s[i]]]] = 1; mee[s[i]]++; mee[-s[i]]++; } } return sum; }
#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...