diff --git a/datastructure/vertex_add_path_sum/gen/almost_line.cpp b/datastructure/vertex_add_path_sum/gen/almost_line.cpp index 408a76701..e4ab39085 100644 --- a/datastructure/vertex_add_path_sum/gen/almost_line.cpp +++ b/datastructure/vertex_add_path_sum/gen/almost_line.cpp @@ -1,5 +1,6 @@ -#include "random.h" #include +#include "../params.h" +#include "random.h" using namespace std; @@ -8,11 +9,11 @@ int main(int, char* argv[]) { long long seed = atoll(argv[1]); auto gen = Random(seed); - int n = 500'000; - int q = 500'000; + int n = N_AND_Q_MAX; + int q = N_AND_Q_MAX; printf("%d %d\n", n, q); for (int i = 0; i < n; i++) { - printf("%d", gen.uniform(0, 1'000'000'000)); + printf("%d", gen.uniform(0, A_AND_X_MAX)); if (i != n - 1) printf(" "); } printf("\n"); @@ -44,7 +45,7 @@ int main(int, char* argv[]) { printf("%d ", t); if (t == 0) { int p = gen.uniform(0, n - 1); - int x = gen.uniform(0, 1'000'000'000); + int x = gen.uniform(0, A_AND_X_MAX); printf("%d %d\n", p, x); } else { auto u = gen.uniform(0, n - 1); diff --git a/datastructure/vertex_add_path_sum/gen/line.cpp b/datastructure/vertex_add_path_sum/gen/line.cpp index 111015286..c1d15c933 100644 --- a/datastructure/vertex_add_path_sum/gen/line.cpp +++ b/datastructure/vertex_add_path_sum/gen/line.cpp @@ -1,5 +1,6 @@ -#include "random.h" #include +#include "../params.h" +#include "random.h" using namespace std; @@ -8,11 +9,11 @@ int main(int, char* argv[]) { long long seed = atoll(argv[1]); auto gen = Random(seed); - int n = 500'000; - int q = 500'000; + int n = N_AND_Q_MAX; + int q = N_AND_Q_MAX; printf("%d %d\n", n, q); for (int i = 0; i < n; i++) { - printf("%d", gen.uniform(0, 1'000'000'000)); + printf("%d", gen.uniform(0, A_AND_X_MAX)); if (i != n - 1) printf(" "); } printf("\n"); @@ -40,7 +41,7 @@ int main(int, char* argv[]) { printf("%d ", t); if (t == 0) { int p = gen.uniform(0, n - 1); - int x = gen.uniform(0, 1'000'000'000); + int x = gen.uniform(0, A_AND_X_MAX); printf("%d %d\n", p, x); } else { auto u = gen.uniform(0, n - 1); diff --git a/datastructure/vertex_add_path_sum/gen/max_random.cpp b/datastructure/vertex_add_path_sum/gen/max_random.cpp index 3c4d5f28c..72fe5bc82 100644 --- a/datastructure/vertex_add_path_sum/gen/max_random.cpp +++ b/datastructure/vertex_add_path_sum/gen/max_random.cpp @@ -1,5 +1,6 @@ -#include "random.h" #include +#include "../params.h" +#include "random.h" using namespace std; @@ -12,7 +13,7 @@ int main(int, char* argv[]) { int q = 500'000; printf("%d %d\n", n, q); for (int i = 0; i < n; i++) { - printf("%d", gen.uniform(0, 1'000'000'000)); + printf("%d", gen.uniform(0, A_AND_X_MAX)); if (i != n - 1) printf(" "); } printf("\n"); @@ -40,7 +41,7 @@ int main(int, char* argv[]) { printf("%d ", t); if (t == 0) { int p = gen.uniform(0, n - 1); - int x = gen.uniform(0, 1'000'000'000); + int x = gen.uniform(0, A_AND_X_MAX); printf("%d %d\n", p, x); } else { auto u = gen.uniform(0, n - 1); diff --git a/datastructure/vertex_add_path_sum/gen/random.cpp b/datastructure/vertex_add_path_sum/gen/random.cpp index 2ec7cf7da..02535cb1f 100644 --- a/datastructure/vertex_add_path_sum/gen/random.cpp +++ b/datastructure/vertex_add_path_sum/gen/random.cpp @@ -1,5 +1,6 @@ #include "random.h" #include +#include "../params.h" using namespace std; @@ -8,11 +9,11 @@ int main(int, char* argv[]) { long long seed = atoll(argv[1]); auto gen = Random(seed); - int n = gen.uniform(1, 500'000); - int q = gen.uniform(1, 500'000); + int n = gen.uniform(1, N_AND_Q_MAX); + int q = gen.uniform(1, N_AND_Q_MAX); printf("%d %d\n", n, q); for (int i = 0; i < n; i++) { - printf("%d", gen.uniform(0, 1'000'000'000)); + printf("%d", gen.uniform(0, A_AND_X_MAX)); if (i != n - 1) printf(" "); } printf("\n"); @@ -40,7 +41,7 @@ int main(int, char* argv[]) { printf("%d ", t); if (t == 0) { int p = gen.uniform(0, n - 1); - int x = gen.uniform(0, 1'000'000'000); + int x = gen.uniform(0, A_AND_X_MAX); printf("%d %d\n", p, x); } else { auto u = gen.uniform(0, n - 1); diff --git a/datastructure/vertex_add_path_sum/gen/small.cpp b/datastructure/vertex_add_path_sum/gen/small.cpp index 61418a547..c5d3ae1f3 100644 --- a/datastructure/vertex_add_path_sum/gen/small.cpp +++ b/datastructure/vertex_add_path_sum/gen/small.cpp @@ -1,5 +1,6 @@ -#include "random.h" #include +#include "../params.h" +#include "random.h" using namespace std; @@ -12,7 +13,7 @@ int main(int, char* argv[]) { int q = gen.uniform(1, 1000); printf("%d %d\n", n, q); for (int i = 0; i < n; i++) { - printf("%d", gen.uniform(0, 1'000'000'000)); + printf("%d", gen.uniform(0, A_AND_X_MAX)); if (i != n - 1) printf(" "); } printf("\n"); @@ -40,7 +41,7 @@ int main(int, char* argv[]) { printf("%d ", t); if (t == 0) { int p = gen.uniform(0, n - 1); - int x = gen.uniform(0, 1'000'000'000); + int x = gen.uniform(0, A_AND_X_MAX); printf("%d %d\n", p, x); } else { auto u = gen.uniform(0, n - 1); diff --git a/datastructure/vertex_add_path_sum/info.toml b/datastructure/vertex_add_path_sum/info.toml index 982976f54..1765ae2f3 100644 --- a/datastructure/vertex_add_path_sum/info.toml +++ b/datastructure/vertex_add_path_sum/info.toml @@ -22,4 +22,8 @@ forum = "https://github.com/yosupo06/library-checker-problems/issues/125" [[solutions]] name = "naive.cpp" - wrong = true \ No newline at end of file + wrong = true + +[params] + N_AND_Q_MAX = 500_000 + A_AND_X_MAX = 1_000_000_000 diff --git a/datastructure/vertex_add_path_sum/task.md b/datastructure/vertex_add_path_sum/task.md index 8f238bf96..32614a226 100644 --- a/datastructure/vertex_add_path_sum/task.md +++ b/datastructure/vertex_add_path_sum/task.md @@ -11,8 +11,8 @@ $Q$ 個のクエリが飛んでくるので処理。 制約 --------- -- $1 \leq N, Q \leq 200,000$ -- $0 \leq a_i, x \leq 10^9$ +- $1 \leq N, Q \leq {{param N_AND_Q_MAX}}$ +- $0 \leq a_i, x \leq {{param A_AND_X_MAX}}$ - $0 \leq p, u_i, v_i < N$ - $(u_i, v_i)$ は木 diff --git a/datastructure/vertex_add_path_sum/verifier.cpp b/datastructure/vertex_add_path_sum/verifier.cpp index cf8b07645..f252c443e 100644 --- a/datastructure/vertex_add_path_sum/verifier.cpp +++ b/datastructure/vertex_add_path_sum/verifier.cpp @@ -1,4 +1,5 @@ #include "testlib.h" +#include "params.h" #include struct UnionFind { @@ -26,13 +27,13 @@ struct UnionFind { int main() { registerValidation(); - int n = inf.readInt(1, 500'000, "N"); + int n = inf.readInt(1, N_AND_Q_MAX, "N"); inf.readSpace(); - int q = inf.readInt(1, 500'000, "Q"); + int q = inf.readInt(1, N_AND_Q_MAX, "Q"); inf.readEoln(); for (int i = 0; i < n; i++) { - inf.readInt(0, 1'000'000'000, "a_i"); + inf.readInt(0, A_AND_X_MAX, "a_i"); if (i != n - 1) inf.readSpace(); } inf.readEoln(); @@ -53,7 +54,7 @@ int main() { if (t == 0) { inf.readInt(0, n - 1, "p"); inf.readSpace(); - inf.readInt(0, 1'000'000'000, "x"); + inf.readInt(0, A_AND_X_MAX, "x"); } else { inf.readInt(0, n - 1, "u"); inf.readSpace();