Submission #808662

#TimeUsernameProblemLanguageResultExecution timeMemory
808662KemalKArranging Shoes (IOI19_shoes)C++17
10 / 100
1 ms212 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; typedef long long int ll; int n; long long count_swaps(std::vector<int> s) { n = s.size(); if (n == 2){ if (s[0] < 0){ return 0; } return 1; } map <int, deque<int>> pos_right; map <int, deque<int>> pos_left; for (int i = 0; i < n; i++){ if (s[i] > 0){ pos_right[s[i]].push_back(i); } else{ pos_left[s[i]].push_back(i); } } ll ans = 0; vector <bool> used (n + 1, false); for (int i = 0; i < n; i++){ if (!used[i]){ // cout << i << "\n"; // left; if (s[i] < 0){ // cout << "left" << "\n"; for (int j = i + 1; j < n; j++){ if (!used[j] and abs(s[i]) == s[j]){ used[j] = true; ans += (j - i - 1ll); break; } } used[i] = true; } else{ // right // cout << "right" << "\n"; for (int j = i + 1; j < n; j++){ if (!used[j] and s[i] == abs(s[j])){ used[j] = true; ans += (j - i); break; } } used[i] = true; } } } 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...