Submission #1210957

#TimeUsernameProblemLanguageResultExecution timeMemory
1210957madamadam3Arranging Shoes (IOI19_shoes)C++20
50 / 100
1096 ms30788 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int n; ll count_swaps(vector<int> s) { n = s.size() / 2; ll minimum = 0; vector<int> current_location(2*n, 0); map<int, set<int>> shoes; set<int> used; for (int i = 0; i < 2*n; i++) { shoes[s[i]].insert(i); } for (int i = 0; i < 2*n; i++) { if (used.count(i)) continue; int size = s[i]; int partner = *shoes[-size].begin(); used.insert(i); used.insert(partner); shoes[size].erase(i); shoes[-size].erase(partner); int dist = (current_location[partner] + partner) - (current_location[i] + i) - 1; if (size > 0) dist++; minimum += dist; for (int k = i; k < 2*n; k++) current_location[k]++; for (int k = partner; k < 2*n; k++) current_location[k]--; } return minimum; }
#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...