From 58e4c77b1d5f8241af91c55e1a8efaba3115dc6b Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 25 Oct 2020 17:16:31 +0800 Subject: import(life): Add algorithm contest 2. --- works/life/algorithm-contest-2/generator/5/1.in | 2 + works/life/algorithm-contest-2/generator/5/2.in | 2 + works/life/algorithm-contest-2/generator/5/3.cpp | 47 ++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 works/life/algorithm-contest-2/generator/5/1.in create mode 100644 works/life/algorithm-contest-2/generator/5/2.in create mode 100644 works/life/algorithm-contest-2/generator/5/3.cpp (limited to 'works/life/algorithm-contest-2/generator/5') 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 +#include +#include + +using std::cout; + +int main() { + std::default_random_engine engine(std::random_device{}()); + std::uniform_int_distribution insert_distribution(0, 997); + std::uniform_int_distribution distribution(1, 100000); + const int SIZE = 1000; + std::vector 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; +} -- cgit v1.2.3