aboutsummaryrefslogtreecommitdiff
path: root/works/life/2020-algorithm-contest/test-data/4/3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'works/life/2020-algorithm-contest/test-data/4/3.cpp')
-rw-r--r--works/life/2020-algorithm-contest/test-data/4/3.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/works/life/2020-algorithm-contest/test-data/4/3.cpp b/works/life/2020-algorithm-contest/test-data/4/3.cpp
new file mode 100644
index 0000000..20428a6
--- /dev/null
+++ b/works/life/2020-algorithm-contest/test-data/4/3.cpp
@@ -0,0 +1,50 @@
+#include <iostream>
+#include <random>
+#include <set>
+#include <algorithm>
+
+struct Point
+{
+ int x;
+ int y;
+};
+
+bool operator<(const Point &left, const Point &right)
+{
+ return left.x == right.x ? left.y < right.y : left.x < right.x;
+}
+
+int main()
+{
+ std::default_random_engine engine{39};
+ const int size = 20;
+ const int b_size = 50;
+ std::uniform_int_distribution<> distribution(0, size - 1);
+ std::cout << size << ' ' << size << ' ' << b_size << '\n';
+
+ std::set<Point> b;
+
+ while (b.size() < b_size)
+ {
+ int x = distribution(engine);
+ int y = distribution(engine);
+
+ if (x == 0 && y == 0)
+ continue;
+ if (x == size - 1 && y == size - 1)
+ continue;
+
+ b.insert({x, y});
+ }
+
+ std::vector<Point> bb(b.cbegin(), b.cend());
+
+ std::shuffle(bb.begin(), bb.end(), engine);
+
+ for (const auto &p : bb)
+ {
+ std::cout << p.x << ' ' << p.y << '\n';
+ }
+
+ return 0;
+}