summaryrefslogtreecommitdiff
path: root/datastructures/test/sparseTable.cpp
diff options
context:
space:
mode:
authorGloria Mundi <gloria@gloria-mundi.eu>2024-04-28 03:26:45 +0200
committerGloria Mundi <gloria@gloria-mundi.eu>2024-04-28 03:26:45 +0200
commitd6d3b6183df2e1d40154f406916993f9b15b3cae (patch)
treefce26b106de624759a36e5add64aabad62f95a55 /datastructures/test/sparseTable.cpp
parent2e0ba29cd0de1e88bed78a96f587613bcf3cc97c (diff)
improve sparse tables
Diffstat (limited to 'datastructures/test/sparseTable.cpp')
-rw-r--r--datastructures/test/sparseTable.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/datastructures/test/sparseTable.cpp b/datastructures/test/sparseTable.cpp
new file mode 100644
index 0000000..ed4d61f
--- /dev/null
+++ b/datastructures/test/sparseTable.cpp
@@ -0,0 +1,24 @@
+#include "../sparseTable.cpp"
+
+void test(int n) {
+ vector<ll> values(n);
+ for (ll &x: values) x = util::randint();
+ SparseTable st;
+ st.init(values);
+ for (int i = 0; i < n; i++) {
+ int l = util::randint(n);
+ int r = util::randint(n);
+ if (l > r) swap(l, r);
+ r++;
+ assert(
+ values[st.queryIdempotent(l, r)]
+ ==
+ *min_element(values.begin()+l, values.begin()+r)
+ );
+ }
+}
+
+int main() {
+ test(1000);
+ test(1);
+}