Submission #403613

#TimeUsernameProblemLanguageResultExecution timeMemory
403613dxz05Arranging Shoes (IOI19_shoes)C++14
10 / 100
194 ms24516 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 4e5 + 6e3; map<int, vector<int>> mp; int f[MAXN]; void add(int x, int y){ x++; while (x < MAXN){ f[x] += y; x += (-x & x); } } void add(int l, int r, int y){ if (l > r) return; add(l, y); add(r + 1, -y); } int get(int x){ x++; int sum = 0; while (x > 0){ sum += f[x]; x -= (-x & x); } return sum; } int get(int l, int r){ return get(r) - get(l - 1); } long long count_swaps(vector<int> a) { int n = a.size(); for (int i = 0; i < n; i++){ mp[a[i]].push_back(i); } vector<bool> used(n, false); ll ans = 0; for (int i = 0; i < n; i++){ if (used[i]) continue; int l = 0, r = mp[-a[i]].size() - 1; int ind, j = i + get(i); while (l <= r){ int m = (l + r) >> 1; int x = mp[-a[i]][m]; if (x + get(x) > j){ ind = x; r = m - 1; } else l = m + 1; } used[ind] = true; ind += get(ind); ans += ind - j - 1; if (a[i] > 0) ans++; add(j + 1, ind - 1, 1); } return ans; }

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:67:13: warning: 'ind' may be used uninitialized in this function [-Wmaybe-uninitialized]
   67 |         ind += get(ind);
      |         ~~~~^~~~~~~~~~~
#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...