Submission #1212203

#TimeUsernameProblemLanguageResultExecution timeMemory
1212203DippleThreeArranging Shoes (IOI19_shoes)C++20
45 / 100
355 ms146036 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; long long count_swaps(std::vector<int> s) { ll ans = 0; map<int, queue<int>> pos; int n = s.size(); for (int i = 0; i < n; i++){ pos[s[i]].push(i); } vector<bool> used(n, false); int curr = 0; for (int i = 0; i < n; i++){ if (used[i]) continue; pos[s[i]].pop(); used[i] = true; int j = pos[-s[i]].front(); pos[-s[i]].pop(); used[j] = true; ans += abs(i - curr) + abs(j - (curr+1)); curr += 2; if (s[i] > 0) ans += 2; } return ans / 2; } #ifdef LOCAL #include <cstdio> #include <cassert> int main() { int n; assert(1 == scanf("%d", &n)); vector<int> S(2 * n); for (int i = 0; i < 2 * n; i++) assert(1 == scanf("%d", &S[i])); fclose(stdin); long long result = count_swaps(S); printf("%lld\n", result); fclose(stdout); return 0; } #endif
#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...