src/math/inversion/lib.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../../ds/fenwick/d1/lib.hpp" | ||
| 4 | #include "../../edh/discretization/lib.hpp" | ||
| 5 | |||
| 6 | namespace tifa_libs { | ||
| 7 | |||
| 8 | template <class T> | ||
| 9 | 30 | CEXP u64 inversion(vec<T> CR v) NE { | |
| 10 | 30 | u64 ans = 0; | |
| 11 | 30 | auto id = gen_id(v).second; | |
| 12 | 30 | fenwick<u64> tr((u32)v.size() + 1); | |
| 13 |
2/2✓ Branch 5 taken 1800747 times.
✓ Branch 6 taken 30 times.
|
1800777 | flt_ (u32, i, 0, (u32)v.size()) tr.add(id[i] + 1, 1), ans += i + 1 - tr.sum(id[i] + 1); |
| 14 | 60 | return ans; | |
| 15 | 30 | } | |
| 16 | |||
| 17 | } // namespace tifa_libs | ||
| 18 |