From 88ac4ce7dc40f66755414d551b181bc43f5cf4d0 Mon Sep 17 00:00:00 2001 From: Anthony Wang Date: Sun, 24 Mar 2024 21:16:06 -0500 Subject: Add main.py solver --- index.html | 3786 ++++++++++++++++++++++++++++++++---------------------------- main.py | 18 + main.rs | 70 +- 3 files changed, 2108 insertions(+), 1766 deletions(-) create mode 100644 main.py diff --git a/index.html b/index.html index bb1f1c1..a6271dd 100644 --- a/index.html +++ b/index.html @@ -1,1760 +1,2026 @@ -
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
+ +
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
+
.
+
|
diff --git a/main.py b/main.py new file mode 100644 index 0000000..d9a9c01 --- /dev/null +++ b/main.py @@ -0,0 +1,18 @@ +import matplotlib.pyplot as plt + +fig, axs = plt.subplots(5, 5) +cnt = 0 +x = [] +y = [] +with open('index.html') as f: + for l in f.readlines(): + if l.startswith(' std::io::Result<()> { + // From https://ascii.co.uk/art/anime + let header = r#" + db db + dpqb dp8b + 8b qb_____dp_88 + 88/ . `p + q'. \ + .'. .-. ,-. `--. + |. / 0 \ / 0 \ | \ + |: `.__ ___.' | \\/ + |. " | ( + \. `-'-' ,' | + _/`------------'. .| + /. \\::(::[];)||:. \ + /. ' \.`:;;;;'''/`. .| +|. |/ `;--._.__/ |..| +|: _/_,'''',,`. `:.' +|. ` / , ',`. |/ + \. -'/\/ ',\ |\ + /\__-' /\ / ,: |.\ + /. .| ' /-. ,: |..\ +:. .| /| | , ,||: ..: +|. .` | '//` ,:|: :| +|.. .\ //\/ ,|: ..| + \. .\ <./ ,'. ../ + \_ ,..`.__ _,..,._/ + `\|||/ `--'\|||/'"#; + let letters = HashMap::from([ ( 'A', @@ -129,8 +157,8 @@ fn main() -> std::io::Result<()> { "0000000000 0001111000 0010000100 -0100000000 -0111000000 +0010000000 +0011100000 0000111000 0000000100 0010000100 @@ -161,6 +189,19 @@ fn main() -> std::io::Result<()> { 0100000010 0010000100 0001111000 +0000000000", + ), + ( + '1', + "0000000000 +0000110000 +0001110000 +0010110000 +0000110000 +0000110000 +0000110000 +0000110000 +0001111000 0000000000", ), ( @@ -187,12 +228,26 @@ fn main() -> std::io::Result<()> { 0111111110 0000001000 0000001000 +0000000000", + ), + ( + '🙂', + "0000000000 +0000000000 +0011001100 +0011001100 +0000000000 +0100000010 +0100000010 +0011001100 +0001111000 0000000000", ), ]); - let ans = "HAPPYAPRILFOOLSDAY2024"; - let mut file = File::create("index.html")?; + let ans = "HAPPYAPRILFOOLSDAY202441🙂"; let mut rng = thread_rng(); + let mut file = File::create("index.html")?; + writeln!(file, "", header)?; for c in ans.chars() { let letter = letters[&c].chars(); let mut zeros = letter @@ -201,12 +256,15 @@ fn main() -> std::io::Result<()> { .map(|(i, _)| i) .collect::>(); zeros.shuffle(&mut rng); + let mut cnt = 0; for i in zeros { + cnt += 1; writeln!( file, - "
0
", + "
{}
", ((i / 11) as f32 + rng.gen_range(0.1..0.9)) * 50.0, - ((i % 11) as f32 + rng.gen_range(0.1..0.9)) * 50.0 + ((i % 11) as f32 + rng.gen_range(0.1..0.9)) * 50.0, + if cnt % 2 == 0 { "|" } else { "." } )?; } } -- cgit v1.2.3-70-g09d2