Submission #376630

#TimeUsernameProblemLanguageResultExecution timeMemory
376630beingsebiArranging Shoes (IOI19_shoes)C++17
30 / 100
78 ms4576 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll solve(vector<int> &ax) { vector<int> aib(ax.size() + 12); auto qr = [&aib](int poz) { ll rez = 0; while (poz) rez += aib[poz], poz -= poz & -poz; return rez; }; auto upd = [&aib](int poz) { while (poz < aib.size()) aib[poz]++, poz += poz & -poz; }; ll rez = 0; for (int i = 0; i < ax.size(); i++) { rez += qr(ax.size()+2) - qr(ax[i] - 1); upd(ax[i]); } return rez; } ll count_swaps(vector<int> v) { int n = (int)v.size(); unordered_map<int, vector<int>> ma; vector<int> ax(n); for (size_t i = 0; i < v.size(); i += 2) ma[-abs(v[i])].push_back(i + 1), ma[abs(v[i])].push_back(i + 2); for (auto &i : ma) reverse(i.second.begin(), i.second.end()); for (int i = 0; i < n; i++) ax[i] = ma[v[i]].back(), ma[v[i]].pop_back(); return solve(ax); }

Compilation message (stderr)

shoes.cpp: In lambda function:
shoes.cpp:14:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |         while (poz < aib.size())
      |                ~~~~^~~~~~~~~~~~
shoes.cpp: In function 'll solve(std::vector<int>&)':
shoes.cpp:18:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     for (int i = 0; i < ax.size(); i++)
      |                     ~~^~~~~~~~~~~
#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...