Submission #726967

#TimeUsernameProblemLanguageResultExecution timeMemory
726967viwlesxqArranging Shoes (IOI19_shoes)C++17
Compilation error
0 ms0 KiB
#include "shoes.h" #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; typedef int64_t ll; typedef string str; #define ordered_set tree <int, null_type, less <int>, rb_tree_tag, tree_order_statistics_node_update> ll count_swaps(vector <int> S) { int n = (int)S.size(); ll ans = 0; for (int i = 0; i < n; ++i) { S[i] += n; } vector <deque <int>> pos(2 * n + 1); vector <bool> used(n, false); ordered_set st; for (int i = 0; i < n; ++i) { pos[S[i]].push_back(i); } for (int i = 0; i + 1 < n; ++i) { if (used[i]) { continue; } if (S[i] > n) { int left = S[i] - n - 2 * (S[i] - n) + n, right = S[i]; int from = pos[left].front(); ans += from - i; ans -= (int)st.order_of_key(from + 1) - (int)st.order_of_key(i); st.insert(i), st.insert(from); used[i] = true, used[from] = true; pos[left].pop_front(), pos[right].pop_front(); } else { int left = S[i], right = S[i] - n - 2 * (S[i] - n) + n; int from = pos[right].front(); ans += from - i - 1; ans -= (int)st.order_of_key(from + 1) - (int)st.order_of_key(i); st.insert(i), st.insert(from); used[i] = true, used[from] = true; pos[left].pop_front(), pos[right].pop_front(); } } return ans; }

Compilation message (stderr)

shoes.cpp:14:4: error: ambiguating new declaration of 'll count_swaps(std::vector<int>)'
   14 | ll count_swaps(vector <int> S) {
      |    ^~~~~~~~~~~
In file included from shoes.cpp:1:
shoes.h:7:11: note: old declaration 'long long int count_swaps(std::vector<int>)'
    7 | long long count_swaps(std::vector<int> S);
      |           ^~~~~~~~~~~