aboutsummaryrefslogtreecommitdiff
path: root/works/life/algorithm-contest-2/generator/5
diff options
context:
space:
mode:
Diffstat (limited to 'works/life/algorithm-contest-2/generator/5')
-rw-r--r--works/life/algorithm-contest-2/generator/5/1.in2
-rw-r--r--works/life/algorithm-contest-2/generator/5/2.in2
-rw-r--r--works/life/algorithm-contest-2/generator/5/3.cpp47
3 files changed, 51 insertions, 0 deletions
diff --git a/works/life/algorithm-contest-2/generator/5/1.in b/works/life/algorithm-contest-2/generator/5/1.in
new file mode 100644
index 0000000..a1dfd91
--- /dev/null
+++ b/works/life/algorithm-contest-2/generator/5/1.in
@@ -0,0 +1,2 @@
+5 3
+6 1 2 3 4 \ No newline at end of file
diff --git a/works/life/algorithm-contest-2/generator/5/2.in b/works/life/algorithm-contest-2/generator/5/2.in
new file mode 100644
index 0000000..7c0d388
--- /dev/null
+++ b/works/life/algorithm-contest-2/generator/5/2.in
@@ -0,0 +1,2 @@
+6 8
+1 9 5 4 3 6 \ No newline at end of file
diff --git a/works/life/algorithm-contest-2/generator/5/3.cpp b/works/life/algorithm-contest-2/generator/5/3.cpp
new file mode 100644
index 0000000..62d18c4
--- /dev/null
+++ b/works/life/algorithm-contest-2/generator/5/3.cpp
@@ -0,0 +1,47 @@
+#include <iostream>
+#include <random>
+#include <vector>
+
+using std::cout;
+
+int main() {
+ std::default_random_engine engine(std::random_device{}());
+ std::uniform_int_distribution<int> insert_distribution(0, 997);
+ std::uniform_int_distribution<int> distribution(1, 100000);
+ const int SIZE = 1000;
+ std::vector<int> v;
+
+ for (int i = 0; i < SIZE - 1; i++) {
+ v.push_back(distribution(engine));
+ }
+
+ int K = 320;
+
+ int a_index = insert_distribution(engine);
+ int a = v[a_index];
+ int b_index = insert_distribution(engine);
+ while (b_index == a_index) {
+ b_index = insert_distribution(engine);
+ }
+ int b = v[b_index];
+
+ int c_index = insert_distribution(engine);
+ while (c_index == a_index && c_index == b_index) {
+ c_index = insert_distribution(engine);
+ }
+ int c = v[c_index];
+
+ int d = (((-a - b - c) % K + K) % K) + 20 * K;
+
+ int d_index = insert_distribution(engine);
+
+ v.insert(v.cbegin() + d_index, c);
+
+ cout << SIZE << ' ' << K << '\n';
+
+ for (int i = 0; i < SIZE; i++) {
+ cout << v[i] << ' ';
+ }
+
+ return 0;
+}