Compare commits

..

477 commits

Author SHA1 Message Date
67ef6227dc 2023: d25: ex2: add solution 2023-12-25 17:20:40 +01:00
c1ef85e59b 2023: d25: ex2: add input 2023-12-25 17:20:34 +01:00
b80a75858d 2023: d25: ex1: add solution 2023-12-25 17:20:26 +01:00
061af7c1d1 2023: d25: ex1: add input 2023-12-25 17:20:09 +01:00
b004a8fae7 2023: d24: ex2: add solution 2023-12-24 13:35:25 +01:00
0c23bd9eee 2023: d24: ex2: add input 2023-12-24 13:35:20 +01:00
03d3cf2210 2023: d24: ex1: add solution 2023-12-24 13:35:15 +01:00
eca3f7bd59 2023: d24: ex1: add input 2023-12-24 13:35:10 +01:00
4047f428e1 2023: d23: ex2: add solution 2023-12-23 10:57:23 +01:00
a42da85f1f 2023: d23: ex2: add input 2023-12-23 10:57:18 +01:00
1204116d6f 2023: d23: ex1: add solution 2023-12-23 10:57:13 +01:00
7017b91d91 2023: d23: ex1: add input 2023-12-23 10:57:08 +01:00
8b58cedff2 2023: d22: ex2: add solution 2023-12-22 15:30:25 +01:00
a734b0d292 2023: d22: ex2: add input 2023-12-22 15:30:19 +01:00
a69212b0ee 2023: d22: ex1: add solution 2023-12-22 15:29:36 +01:00
6fbc38b565 2023: d22: ex1: add input 2023-12-22 15:29:27 +01:00
0f949820e1 2023: d21: ex2: add solution 2023-12-21 10:54:01 +01:00
5e8eb3d7f2 2023: d21: ex2: add input 2023-12-21 10:53:56 +01:00
4c11e798bd 2023: d21: ex1: add solution 2023-12-21 10:53:48 +01:00
3837f06467 2023: d21: ex1: add input 2023-12-21 10:53:43 +01:00
1a0a231bd7 2023: d20: ex2: add solution 2023-12-20 11:18:49 +01:00
781e51b3a0 2023: d20: ex2: add input 2023-12-20 11:18:43 +01:00
c8e0e82c12 2023: d20: ex1: add solution 2023-12-20 11:18:38 +01:00
70cbe0d6f2 2023: d20: ex1: add input 2023-12-20 11:18:33 +01:00
06f3c8f169 2023: d19: ex2: add solution 2023-12-19 19:12:22 +01:00
a18f882c1a 2023: d19: ex2: add input 2023-12-19 17:58:03 +00:00
e795c9cee8 2023: d19: ex1: add solution 2023-12-19 17:57:57 +00:00
8f8e37b42d 2023: d19: ex1: add input 2023-12-19 17:57:51 +00:00
57f28d6411 2023: d18: ex2: add solution 2023-12-18 08:03:12 +00:00
7e2489f5f9 2023: d18: ex2: add input 2023-12-18 08:03:06 +00:00
f9c1e152c3 2023: d18: ex1: add solution 2023-12-18 08:02:58 +00:00
bb2bee9c6e 2023: d18: ex1: add input 2023-12-18 08:02:53 +00:00
122b81ed15 2023: d17: ex2: add solution 2023-12-17 12:00:41 +00:00
d5694f2bd3 2023: d17: ex2: add input 2023-12-17 11:59:21 +00:00
5215e97077 2023: d17: ex1: add solution 2023-12-17 11:59:15 +00:00
1be0b68503 2023: d17: ex1: add input 2023-12-17 11:59:10 +00:00
8f6fc416fb 2023: d16: ex2: add solution 2023-12-16 11:13:00 +00:00
61e32bde3d 2023: d16: ex2: add input 2023-12-16 11:12:54 +00:00
97b4a3c7b3 2023: d16: ex1: add solution 2023-12-16 11:12:48 +00:00
f62c625850 2023: d16: ex1: add input 2023-12-16 11:12:42 +00:00
d15f807bd1 2023: d15: ex2: add solution 2023-12-15 10:59:09 +00:00
90ebcbebd8 2023: d15: ex2: add input 2023-12-15 10:59:05 +00:00
38dc59b16d 2023: d15: ex1: add solution 2023-12-15 10:58:59 +00:00
1e7d41b861 2023: d15: ex1: add input 2023-12-15 10:58:54 +00:00
572d03ae1d 2023: d14: ex2: add solution 2023-12-14 10:43:13 +00:00
f8b27ddff8 2023: d14: ex2: add input 2023-12-14 10:43:09 +00:00
3f2c16d8a8 2023: d14: ex1: add solution 2023-12-14 10:43:03 +00:00
307381a434 2023: d14: ex1: add input 2023-12-14 10:42:55 +00:00
d8f472ec43 2023: d13: ex2: add solution 2023-12-13 10:10:51 +00:00
21986b1148 2023: d13: ex2: add input 2023-12-13 10:10:51 +00:00
9f7c2a6448 2023: d13: ex1: add solution 2023-12-13 10:10:51 +00:00
bd396f32d7 2023: d13: ex1: add input 2023-12-13 10:10:51 +00:00
d2e2d79d71 2023: d12: ex2: add solution 2023-12-12 19:29:49 +01:00
15b8b5aaeb 2023: d12: ex2: add input 2023-12-12 19:29:49 +01:00
70fdb4e606 2023: d12: ex1: add solution 2023-12-12 19:29:49 +01:00
f8c387c5a6 2023: d12: ex1: add input 2023-12-12 10:23:56 +00:00
f31434d9c6 2023: d11: ex2: add solution 2023-12-11 07:18:35 +00:00
abf3b5e66c 2023: d11: ex2: add input 2023-12-11 07:18:35 +00:00
c46be2b190 2023: d11: ex1: add solution 2023-12-11 07:18:35 +00:00
933fc2da0b 2023: d11: ex1: add input 2023-12-11 07:05:49 +00:00
9bbb769a9b 2023: d10: ex2: add solution 2023-12-10 19:27:44 +00:00
7cf50212b4 2023: d10: ex2: add input 2023-12-10 12:48:14 +00:00
8692f6c401 2023: d10: ex1: add solution 2023-12-10 12:48:09 +00:00
a4e14d1245 2023: d10: ex1: add input 2023-12-10 12:48:03 +00:00
8e5433a642 2023: d09: ex2: add solution 2023-12-09 09:51:32 +00:00
f4e3d977c2 2023: d09: ex2: add input 2023-12-09 09:47:19 +00:00
d5842f92be 2023: d09: ex1: add solution 2023-12-09 09:47:13 +00:00
6f31630af7 2023: d09: ex1: add input 2023-12-09 09:47:07 +00:00
a310f24d8e 2023: d08: ex2: add solution 2023-12-08 08:23:16 +00:00
348ce5b369 2023: d08: ex2: add input 2023-12-08 08:23:11 +00:00
34e16218b8 2023: d08: ex1: add solution 2023-12-08 08:23:05 +00:00
dcce8c1eec 2023: d08: ex1: add input 2023-12-08 08:22:59 +00:00
ad9ddd69e5 2023: d07: ex2: add solution 2023-12-07 08:56:49 +00:00
4f5138adb8 2023: d07: ex2: add input 2023-12-07 08:56:44 +00:00
73ee756062 2023: d07: ex1: add solution 2023-12-07 08:56:39 +00:00
245a07bbdd 2023: d07: ex1: add input 2023-12-07 08:56:34 +00:00
13437c7bd6 2023: d06: ex2: add solution 2023-12-06 09:16:14 +00:00
dda2adcb6e 2023: d06: ex2: add input 2023-12-06 09:16:09 +00:00
c329b034a6 2023: d06: ex1: add solution 2023-12-06 09:16:02 +00:00
bacc167481 2023: d06: ex1: add input 2023-12-06 09:15:54 +00:00
3afecbf47e 2023: d05: ex2: add solution 2023-12-05 20:06:23 +00:00
0a65ff5789 2023: d05: ex2: add input 2023-12-05 20:06:18 +00:00
7a7ba0b454 2023: d05: ex1: add solution 2023-12-05 20:06:13 +00:00
d45398d1e9 2023: d05: ex1: add input 2023-12-05 20:06:07 +00:00
10faba0e78 2023: d04: ex2: add solution 2023-12-04 11:10:54 +00:00
3e34da7b31 2023: d04: ex2: add input 2023-12-04 11:10:48 +00:00
831b3606b4 2023: d04: ex1: add solution 2023-12-04 11:10:40 +00:00
f659487d80 2023: d04: ex1: add input 2023-12-04 11:10:34 +00:00
bdd585fec7 2023: d03: ex2: add solution 2023-12-04 11:10:05 +00:00
3d6780146b 2023: d03: ex2: add input 2023-12-04 11:10:05 +00:00
d52a3a1e59 2023: d03: ex1: add solution 2023-12-04 11:10:05 +00:00
2923fd5dcc 2023: d03: ex1: add input 2023-12-03 15:16:50 +00:00
1193810e57 2023: d02: ex2: add solution 2023-12-02 09:41:43 +00:00
8ab447e917 2023: d02: ex2: add input 2023-12-02 09:41:43 +00:00
65c087a68b 2023: d02: ex1: add solution 2023-12-02 09:41:43 +00:00
078dfd94e7 2023: d02: ex1: add input 2023-12-02 09:21:39 +00:00
52ecb598bc 2023: d01: ex2: add solution 2023-12-01 19:28:29 +00:00
8df335ba05 2023: d01: ex2: add input 2023-12-01 19:28:29 +00:00
447467ef6e 2023: d01: ex1: add solution 2023-12-01 19:28:29 +00:00
1039b4c0ac 2023: d01: ex1: add input 2023-12-01 19:28:29 +00:00
a53f99d841 nix: bump flake inputs 2023-12-01 19:28:29 +00:00
37d878da27 nix: use 'main' branch for 'flake-utils' 2023-12-01 19:28:29 +00:00
53c344b223 2022: d25: ex2: add solution 2022-12-25 11:25:25 +01:00
5bbf42ef1b 2022: d25: ex2: add input 2022-12-25 11:25:20 +01:00
92cabbda8f 2022: d25: ex1: add solution 2022-12-25 11:24:28 +01:00
addda451ef 2022: d25: ex1: add input 2022-12-25 11:24:20 +01:00
d1194e8c5f 2022: d24: ex2: add solution 2022-12-24 14:54:26 +01:00
7759412af3 2022: d24: ex2: add input 2022-12-24 14:54:21 +01:00
4211451deb 2022: d24: ex1: add solution 2022-12-24 14:54:13 +01:00
1562f97efc 2022: d24: ex1: add input 2022-12-24 14:53:14 +01:00
1c57181989 2022: d23: ex2: add solution 2022-12-23 10:00:35 +01:00
e8cbc17839 2022: d23: ex2: add input 2022-12-23 10:00:30 +01:00
2ce03834e4 2022: d23: ex1: add solution 2022-12-23 10:00:24 +01:00
f3af387265 2022: d23: ex1: add input 2022-12-23 10:00:19 +01:00
43b78a23c5 2022: d22: ex2: add solution 2022-12-22 16:23:41 +01:00
a4d483e01c 2022: d22: ex2: add input 2022-12-22 16:23:36 +01:00
eeaf6956e5 2022: d22: ex1: add solution 2022-12-22 16:23:29 +01:00
b819e62da4 2022: d22: ex1: add input 2022-12-22 16:23:23 +01:00
992cbd34f4 2022: d21: ex2: add solution 2022-12-21 12:54:43 +01:00
c7bb07d13a 2022: d21: ex2: add input 2022-12-21 12:54:39 +01:00
810101024f 2022: d21: ex1: add solution 2022-12-21 12:54:33 +01:00
e1dc373b69 2022: d21: ex1: add input 2022-12-21 12:54:28 +01:00
3e5502e3d8 2022: d20: ex2: add solution 2022-12-20 13:45:09 +01:00
5d6ef372de 2022: d20: ex2: add input 2022-12-20 13:45:02 +01:00
8881d00b55 2022: d20: ex1: add solution 2022-12-20 13:44:56 +01:00
31fbfaaead 2022: d20: ex1: add input 2022-12-20 13:44:51 +01:00
1392358ada 2022: d19: ex2: add solution 2022-12-19 12:20:55 +01:00
076126ec41 2022: d19: ex2: add input 2022-12-19 12:20:49 +01:00
64ae3b2a59 2022: d19: ex1: add solution 2022-12-19 12:20:44 +01:00
69055425f0 2022: d19: ex1: add input 2022-12-19 12:20:39 +01:00
8e8e26f2d6 2022: d18: ex2: add solution 2022-12-18 12:47:06 +01:00
1743b72d82 2022: d18: ex2: add input 2022-12-18 12:44:45 +01:00
a57da6fcfe 2022: d18: ex1: add solution 2022-12-18 12:44:40 +01:00
ef8b11d2d3 2022: d18: ex1: add input 2022-12-18 12:44:35 +01:00
e18d783d39 2022: d17: ex2: add solution 2022-12-17 12:52:34 +01:00
e509e6fd4b 2022: d17: ex2: add input 2022-12-17 12:52:29 +01:00
ce88300254 2022: d17: ex1: add solution 2022-12-17 12:52:24 +01:00
fa883c71c0 2022: d17: ex1: add input 2022-12-17 12:52:18 +01:00
1cee160cad 2022: d16: ex2: add solution 2022-12-16 10:38:09 +01:00
7009315b66 2022: d16: ex2: add input 2022-12-16 10:38:04 +01:00
6355c9c84d 2022: d16: ex1: add solution 2022-12-16 10:37:59 +01:00
0587294ccf 2022: d16: ex1: add input 2022-12-16 10:37:52 +01:00
14e8b539c6 2022: d15: ex2: add solution 2022-12-15 17:15:57 +01:00
0f91c37d6d 2022: d15: ex2: add input 2022-12-15 17:15:57 +01:00
1ce063154e 2022: d15: ex1: add solution 2022-12-15 17:15:57 +01:00
da042bea7d 2022: d15: ex1: add input 2022-12-15 11:14:21 +01:00
a9c325ce14 2022: d14: ex2: add solution 2022-12-14 15:00:48 +01:00
e457aaed44 2022: d14: ex2: add input 2022-12-14 15:00:48 +01:00
2c486e5984 2022: d14: ex1: add solution 2022-12-14 15:00:48 +01:00
7eb906cd17 2022: d14: ex1: add input 2022-12-14 14:41:48 +01:00
e5f1d74b08 2022: d13: ex2: add solution 2022-12-13 10:03:37 +01:00
73c97eb7ce 2022: d13: ex2: add input 2022-12-13 10:03:32 +01:00
3d45fe8501 2022: d13: ex1: add solution 2022-12-13 10:03:25 +01:00
98f58280fa 2022: d13: ex1: add input 2022-12-13 10:03:17 +01:00
977dbcbd93 2022: d12: ex2: add solution 2022-12-12 16:16:26 +01:00
644f29a79d 2022: d12: ex2: add input 2022-12-12 16:14:52 +01:00
5f55835edf 2022: d12: ex1: add solution 2022-12-12 16:14:46 +01:00
300502a05f 2022: d12: ex1: add input 2022-12-12 16:14:39 +01:00
93cac379e0 2022: d11: ex2: add solution 2022-12-11 12:13:38 +01:00
efb846e460 2022: d11: ex2: add input 2022-12-11 12:08:11 +01:00
a03da090dc 2022: d11: ex1: add solution 2022-12-11 12:08:05 +01:00
19d6374476 2022: d11: ex1: add input 2022-12-11 12:08:00 +01:00
44dafef243 2022: d10: ex2: add solution 2022-12-10 11:16:01 +01:00
5731ff8e82 2022: d10: ex2: add input 2022-12-10 10:32:40 +01:00
426deae1ce 2022: d10: ex1: add solution 2022-12-10 10:32:40 +01:00
63bbd74790 2022: d10: ex1: add input 2022-12-10 10:32:40 +01:00
20779b5e2e 2022: d09: ex2: add solution 2022-12-10 10:32:40 +01:00
912e8e6edb 2022: d09: ex2: add input 2022-12-10 10:32:40 +01:00
a505c9de49 2022: d09: ex1: add solution 2022-12-10 10:32:40 +01:00
71280e082d 2022: d09: ex1: add input 2022-12-10 10:32:40 +01:00
f6fbf6d6e6 2022: d08: ex2: add solution 2022-12-10 10:32:40 +01:00
8b63d66750 2022: d08: ex2: add input 2022-12-10 10:32:40 +01:00
637b7e64c2 2022: d08: ex1: add solution 2022-12-10 10:32:40 +01:00
a45e00083c 2022: d08: ex1: add input 2022-12-10 10:32:40 +01:00
a6f1d09f91 2022: d07: ex2: add solution 2022-12-10 10:32:40 +01:00
02a0c87f74 2022: d07: ex2: add input 2022-12-10 10:32:40 +01:00
5270736a28 2022: d07: ex1: add solution 2022-12-10 10:32:40 +01:00
761a37e8fe 2022: d07: ex1: add input 2022-12-10 10:32:40 +01:00
0c2712d7db 2022: d06: ex2: add solution 2022-12-10 10:32:40 +01:00
20fcfe32b2 2022: d06: ex2: add input 2022-12-10 10:32:40 +01:00
6c4ead5e1b 2022: d06: ex1: add solution 2022-12-10 10:32:40 +01:00
65cb34a16a 2022: d06: ex1: add input 2022-12-10 10:32:40 +01:00
5ad92f1585 2022: d05: ex2: add solution 2022-12-10 10:32:40 +01:00
fd66f79400 2022: d05: ex2: add input 2022-12-10 10:32:40 +01:00
e2d1a5f74d 2022: d05: ex1: add solution 2022-12-10 10:32:40 +01:00
cea94a22fb 2022: d05: ex1: add input 2022-12-10 10:32:40 +01:00
c2cfef5e30 2022: d04: ex2: add solution 2022-12-10 10:32:40 +01:00
9b01dc5723 2022: d04: ex2: add input 2022-12-10 10:32:40 +01:00
d43d8c0cf1 2022: d04: ex1: add solution 2022-12-10 10:32:40 +01:00
32ccf155df 2022: d04: ex1: add input 2022-12-10 10:32:40 +01:00
3030162e09 2022: d03: ex2: add solution 2022-12-10 10:32:40 +01:00
035b00e5cf 2022: d03: ex2: add input 2022-12-03 07:50:28 +01:00
96b6c799e7 2022: d03: ex1: add solution 2022-12-03 07:50:28 +01:00
4c8667879d 2022: d03: ex1: add input 2022-12-03 07:48:55 +01:00
787381537b 2022: d02: ex2: add solution 2022-12-02 08:06:13 +01:00
ca0ff2f0b9 2022: d02: ex2: add input 2022-12-02 08:05:47 +01:00
a710ad0217 2022: d02: ex1: add solution 2022-12-02 08:05:39 +01:00
a06d490eef 2022: d02: ex1: add input 2022-12-02 08:05:33 +01:00
6f0ffd34db 2022: d01: ex2: add solution 2022-12-01 11:49:28 +01:00
a064fe7199 2022: d01: ex2: add input 2022-12-01 11:49:28 +01:00
24610576bb 2022: d01: ex1: add solution 2022-12-01 11:49:28 +01:00
8c13d5954e 2022: d01: ex1: add input 2022-12-01 10:02:48 +01:00
31c0f09981 nix: use 'nixpkgs-unstable' 2022-12-01 10:02:48 +01:00
46864fc490 nix: bump flake inputs 2022-12-01 10:02:48 +01:00
fcb74b375f nix: fix 'pyright' 2022-12-01 10:02:48 +01:00
6a6552f6fc 2021: d25: ex2: add solution 2021-12-26 18:35:57 +01:00
a6560adc6a 2021: d25: ex2: add input 2021-12-26 18:35:57 +01:00
709ad10ae2 2021: d25: ex1: add solution 2021-12-26 18:35:57 +01:00
5266bd7cd7 2021: d25: ex1: add input 2021-12-26 18:35:57 +01:00
068ce3366a 2021: d24: ex2: add solution 2021-12-26 18:35:57 +01:00
a8b2046162 2021: d24: ex2: add input 2021-12-26 18:35:57 +01:00
84ee4c57f0 2021: d24: ex1: add solution 2021-12-26 18:35:57 +01:00
bf830af1ae 2021: d24: ex1: add input 2021-12-26 17:46:51 +01:00
d35e1d43d6 nix: add z3 to python environment 2021-12-26 17:46:51 +01:00
289b1ce455 nix: use proper python environment 2021-12-26 17:46:51 +01:00
ac9f1f2d6d 2021: d23: ex2: add solution 2021-12-26 17:46:51 +01:00
04589c89b8 2021: d23: ex2: add input 2021-12-26 17:46:51 +01:00
05fdbcc303 2021: d23: ex1: add solution 2021-12-26 17:46:51 +01:00
130e417c62 2021: d23: ex1: add input 2021-12-26 17:39:08 +01:00
61936793e3 2021: d22: ex2: add solution 2021-12-22 16:41:20 +01:00
f8d2551280 2021: d22: ex2: add input 2021-12-22 16:41:13 +01:00
9ab9b3bd08 2021: d22: ex1: add solution 2021-12-22 16:41:07 +01:00
3152b281e2 2021: d22: ex1: add input 2021-12-22 16:41:00 +01:00
d85baf2a6d 2021: d21: ex2: add solution 2021-12-21 15:04:56 +01:00
16e9f6eb9c 2021: d21: ex2: add input 2021-12-21 15:04:49 +01:00
ee48bb409a 2021: d21: ex1: add solution 2021-12-21 15:04:43 +01:00
a791595c4e 2021: d21: ex1: add input 2021-12-21 15:04:37 +01:00
65328ff90d 2021: d20: ex2: add solution 2021-12-20 15:24:05 +01:00
74e53e919c 2021: d20: ex2: add input 2021-12-20 15:24:00 +01:00
820d358803 2021: d20: ex1: add solution 2021-12-20 15:23:53 +01:00
98deed16ed 2021: d20: ex1: add input 2021-12-20 15:23:47 +01:00
05a02c63fd 2021: d19: ex2: add solution 2021-12-19 14:23:37 +01:00
f561c94209 2021: d19: ex2: add input 2021-12-19 14:23:30 +01:00
549a806bd6 2021: d19: ex1: add solution 2021-12-19 14:23:21 +01:00
030f680090 2021: d19: ex1: add input 2021-12-19 14:23:16 +01:00
8bf78654a5 2021: d18: ex2: add solution 2021-12-18 16:05:53 +01:00
c0bf6fe213 2021: d18: ex2: add input 2021-12-18 16:05:48 +01:00
2be3cf4327 2021: d18: ex1: add solution 2021-12-18 16:05:38 +01:00
38902d9a64 2021: d18: ex1: add input 2021-12-18 16:05:30 +01:00
87dd721d47 2021: d17: ex2: add solution 2021-12-17 17:40:43 +01:00
bbb6b33406 2021: d17: ex2: add input 2021-12-17 17:40:43 +01:00
b8e0bc7db7 2021: d17: ex1: add solution 2021-12-17 17:40:43 +01:00
b41103b3a8 2021: d17: ex1: add input 2021-12-17 17:38:20 +01:00
44d90b4153 2021: d16: ex2: add solution 2021-12-16 13:16:45 +01:00
b42fd7e459 2021: d16: ex2: add input 2021-12-16 12:59:29 +01:00
ae66ae03d6 2021: d16: ex1: add solution 2021-12-16 12:59:21 +01:00
bf5053d865 2021: d16: ex1: add input 2021-12-16 12:59:15 +01:00
643286ca25 2021: d15: ex2: add solution 2021-12-15 10:21:46 +01:00
cb03ef9b2b 2021: d15: ex2: add input 2021-12-15 10:21:39 +01:00
ee4c12e081 2021: d15: ex1: add solution 2021-12-15 10:21:33 +01:00
68219cf710 2021: d15: ex1: add input 2021-12-15 10:21:27 +01:00
03565ed812 2021: d14: ex2: add solution 2021-12-14 13:52:53 +01:00
420d4a8f7a 2021: d14: ex2: add input 2021-12-14 13:46:29 +01:00
a1520e437e 2021: d14: ex1: add solution 2021-12-14 13:46:23 +01:00
235f8cd29b 2021: d14: ex1: add input 2021-12-14 13:46:09 +01:00
b1f325432c nix: add tools to devShell 2021-12-13 18:06:02 +01:00
5f332cc4fa 2019: d07: ex1: quieten Mypy 2021-12-13 18:03:31 +01:00
df66079060 2021: d13: ex2: add solution 2021-12-13 17:52:37 +01:00
8794333d64 2021: d13: ex2: add input 2021-12-13 17:52:37 +01:00
4b19161d71 2021: d13: ex1: add solution 2021-12-13 17:52:37 +01:00
6dbdba8a46 2021: d13: ex1: add input 2021-12-13 17:52:37 +01:00
64651f1be9 2021: d12: ex2: add solution 2021-12-13 17:52:37 +01:00
b2c5e732f5 2021: d12: ex2: add input 2021-12-13 17:52:37 +01:00
3feee209e3 2021: d12: ex1: add solution 2021-12-13 17:52:37 +01:00
85fd510ec9 2021: d12: ex1: add input 2021-12-13 17:52:37 +01:00
6434bbca1b 2021: d11: ex2: add solution 2021-12-13 17:52:37 +01:00
c7f1e0c57c 2021: d11: ex2: add input 2021-12-13 17:52:37 +01:00
9c1b1bc4a5 2021: d11: ex1: add solution 2021-12-13 17:52:37 +01:00
3fb206b0e5 2021: d11: ex1: add input 2021-12-13 17:52:37 +01:00
cef3c2fa8d 2021: d10: ex2: add solution 2021-12-13 17:52:37 +01:00
5e1b3b095c 2021: d10: ex2: add input 2021-12-13 17:52:37 +01:00
97ce6eb8b5 2021: d10: ex1: add solution 2021-12-13 17:52:37 +01:00
00df99ac05 2021: d10: ex1: add input 2021-12-13 17:52:37 +01:00
531bbda3d5 2021: d09: ex2: add solution 2021-12-13 17:52:37 +01:00
fc8af0d5ce 2021: d09: ex2: add input 2021-12-13 17:52:37 +01:00
3b0f1c8882 2021: d09: ex1: add solution 2021-12-13 17:52:37 +01:00
4a99cd11bd 2021: d09: ex1: add input 2021-12-13 17:52:37 +01:00
f535c7c129 2021: d08: ex2: add solution 2021-12-13 17:52:37 +01:00
2ab20607e1 2021: d08: ex2: add input 2021-12-13 17:52:37 +01:00
ab86a2dce7 2021: d08: ex1: add solution 2021-12-13 17:52:37 +01:00
e05173e73b 2021: d08: ex1: add input 2021-12-13 17:52:37 +01:00
6d778ff545 2021: d07: ex2: add solution 2021-12-13 17:52:37 +01:00
c341ad6eee 2021: d07: ex2: add input 2021-12-13 17:52:37 +01:00
b8d6bc9b4f 2021: d07: ex1: add solution 2021-12-13 17:52:37 +01:00
7793f65af4 2021: d07: ex1: add input 2021-12-13 17:52:37 +01:00
4794a6269a 2021: d06: ex2: add solution 2021-12-13 17:52:37 +01:00
7f9758eb0c 2021: d06: ex2: add input 2021-12-13 17:52:37 +01:00
10abc46e11 2021: d06: ex1: add solution 2021-12-13 17:52:37 +01:00
330a8d64d0 2021: d06: ex1: add input 2021-12-13 17:52:37 +01:00
d474708fc8 2021: d05: ex2: add solution 2021-12-13 17:52:37 +01:00
55e08af4b1 2021: d05: ex2: add input 2021-12-13 17:52:37 +01:00
ce04fb589b 2021: d05: ex1: add solution 2021-12-13 17:52:37 +01:00
039e7f5214 2021: d05: ex1: add input 2021-12-13 14:33:15 +01:00
ea66011fef 2021: d04: ex2: add solution 2021-12-13 14:33:15 +01:00
daa87d923d 2021: d04: ex2: add input 2021-12-13 14:33:15 +01:00
2177287e01 2021: d04: ex1: add solution 2021-12-13 14:33:15 +01:00
484a9722ad 2021: d04: ex1: add input 2021-12-13 14:33:15 +01:00
614d3447c5 2021: d03: ex2: add solution 2021-12-13 14:33:15 +01:00
8acf8aadaf 2021: d03: ex2: add input 2021-12-13 14:33:15 +01:00
b15c1a0d57 2021: d03: ex1: add solution 2021-12-13 14:33:15 +01:00
cba9dd02f8 2021: d03: ex1: add input 2021-12-13 14:33:15 +01:00
7956b96baa 2021: d02: ex2: add solution 2021-12-13 14:33:15 +01:00
4b03030ed6 2021: d02: ex2: add input 2021-12-13 14:33:15 +01:00
a21310895c 2021: d02: ex1: add solution 2021-12-13 14:33:15 +01:00
05a6845e83 2021: d02: ex1: add input 2021-12-13 14:33:15 +01:00
357c18a5fa 2021: d01: ex2: add solution 2021-12-13 14:33:15 +01:00
175706ca68 2021: d01: ex2: add input 2021-12-13 14:33:15 +01:00
b1bec40137 2021: d01: ex1: add solution 2021-12-13 14:33:15 +01:00
2f661fa8a8 2021: d01: ex1: add input 2021-12-13 14:28:59 +01:00
0c925ae943 git: ignore generated files 2021-12-13 14:28:59 +01:00
50b46506ee nix: add direnv integration 2021-12-13 14:28:59 +01:00
01750a9c39 isort: use 'black' compatible style 2021-12-13 14:28:59 +01:00
1337f92ef3 nix: add flake 2021-12-13 14:28:59 +01:00
e2acd44936 2020: d25: ex2: add solution 2021-12-06 13:58:37 +01:00
5dfe49a98d 2020: d25: ex2: add input 2021-12-06 13:58:37 +01:00
6183509703 2020: d25: ex1: add solution 2021-12-06 13:58:37 +01:00
7ce292eb33 2020: d25: ex1: add input 2021-12-06 13:58:37 +01:00
56b37a3e4f 2020: d24: ex2: add solution 2021-12-06 13:58:37 +01:00
3270cf77aa 2020: d24: ex2: add input 2021-12-06 13:58:37 +01:00
0e09148689 2020: d24: ex1: add solution 2021-12-06 13:58:37 +01:00
aab1b0d7e8 2020: d24: ex1: add input 2021-12-06 13:58:37 +01:00
fe4d2f5c1f 2020: d23: ex2: add solution 2021-12-06 13:58:37 +01:00
6158f55f42 2020: d23: ex2: add input 2021-12-06 13:58:37 +01:00
cd827923c3 2020: d23: ex1: add solution 2021-12-06 13:58:37 +01:00
3e7dc177ff 2020: d23: ex1: add input 2021-12-06 13:58:37 +01:00
8c30df4da9 2020: d22: ex2: add solution 2021-12-06 13:58:37 +01:00
bd8b216cf2 2020: d22: ex2: add input 2021-12-06 13:58:37 +01:00
810aee2aed 2020: d22: ex1: add solution 2021-12-06 13:58:37 +01:00
987cdd56c5 2020: d22: ex1: add input 2021-12-06 13:58:37 +01:00
c8b9636957 2020: d21: ex2: add solution 2021-12-06 13:58:37 +01:00
5cb2e01a2f 2020: d21: ex2: add input 2021-12-06 13:58:37 +01:00
b2e5775014 2020: d21: ex1: add solution 2021-12-06 13:58:37 +01:00
9171fe1ae2 2020: d21: ex1: add input 2021-12-06 13:58:37 +01:00
16e0da1a2c 2020: d20: ex2: add solution 2021-12-06 13:58:37 +01:00
37bc234a8a 2020: d20: ex2: add input 2021-12-06 13:58:37 +01:00
8a2bbc38b6 2020: d20: ex1: add solution 2021-12-06 13:58:37 +01:00
9baeadebee 2020: d20: ex1: add input 2021-12-06 13:58:37 +01:00
f0658a7c81 2020: d19: ex2: add solution 2021-12-06 13:58:37 +01:00
1480e095c5 2020: d19: ex2: add input 2021-12-06 13:58:37 +01:00
9b09b7f5f3 2020: d19: ex1: add solution 2021-12-06 13:58:37 +01:00
f7bf6d1058 2020: d19: ex1: add input 2021-12-06 13:58:37 +01:00
b2b051837f 2020: d18: ex2: add solution 2021-12-06 13:58:37 +01:00
9d2ad5dce4 2020: d18: ex2: add input 2021-12-06 13:58:37 +01:00
e802aea353 2020: d18: ex1: add solution 2021-12-06 13:58:37 +01:00
711cb4724b 2020: d18: ex1: add input 2021-12-06 13:58:37 +01:00
ee985f7151 2020: d17: ex2: add solution 2021-12-06 13:58:37 +01:00
886e96349a 2020: d17: ex2: add input 2021-12-06 13:58:37 +01:00
57cd081712 2020: d17: ex1: add solution 2021-12-06 13:58:37 +01:00
1ce8bd45b3 2020: d17: ex1: add input 2021-12-06 13:58:37 +01:00
a2d966926b 2020: d16: ex2: add solution 2021-12-06 13:58:37 +01:00
e9b6af3754 2020: d16: ex2: add input 2021-12-06 13:58:37 +01:00
54b5f45c5a 2020: d16: ex1: add solution 2021-12-06 13:58:37 +01:00
2c134402dc 2020: d16: ex1: add input 2021-12-06 13:58:37 +01:00
d3f00411f4 2020: d15: ex2: add solution 2021-12-06 13:58:37 +01:00
717d495d89 2020: d15: ex2: add input 2021-12-06 13:58:37 +01:00
d3da5495c9 2020: d15: ex1: add solution 2021-12-06 13:58:37 +01:00
1c4bec86ef 2020: d15: ex1: add input 2021-12-06 13:58:37 +01:00
258e8a568b 2020: d15: ex2: add solution 2021-12-06 13:58:37 +01:00
8544842253 2020: d15: ex2: add input 2021-12-06 13:58:37 +01:00
b5042767c6 2020: d14: ex1: add solution 2021-12-06 13:58:37 +01:00
5d6ea97234 2020: d14: ex1: add input 2021-12-06 13:58:37 +01:00
f071afb02b 2020: d13: ex2: add solution 2021-12-06 13:58:37 +01:00
b26314c942 2020: d13: ex2: add input 2021-12-06 13:58:37 +01:00
f157debb7b 2020: d13: ex1: add solution 2021-12-06 13:58:37 +01:00
3afd466d83 2020: d13: ex1: add input 2021-12-06 13:58:37 +01:00
72cd094e0c 2020: d12: ex2: add solution 2021-12-06 13:58:37 +01:00
ff956922aa 2020: d12: ex2: add input 2021-12-06 13:58:37 +01:00
a6110aaa7f 2020: d12: ex1: add solution 2021-12-06 13:58:37 +01:00
07198e85d3 2020: d12: ex1: add input 2021-12-06 13:58:37 +01:00
687b0a848d 2020: d11: ex2: add solution 2021-12-06 13:58:37 +01:00
e171f3953b 2020: d11: ex2: add input 2021-12-06 13:58:37 +01:00
0eefd66d10 2020: d11: ex1: add solution 2021-12-06 13:58:37 +01:00
9202d31fa8 2020: d11: ex1: add input 2021-12-06 13:58:37 +01:00
d2abd31795 2020: d10: ex2: add solution 2021-12-06 13:58:37 +01:00
d6c0be03f0 2020: d10: ex2: add input 2021-12-06 13:58:37 +01:00
49feb648c1 2020: d10: ex1: add solution 2021-12-06 13:58:36 +01:00
bd842fd6f8 2020: d10: ex1: add input 2021-12-06 13:58:36 +01:00
7a599b5139 2020: d09: ex2: add solution 2021-12-06 13:58:36 +01:00
93b884fef3 2020: d09: ex2: add input 2021-12-06 13:58:36 +01:00
aeddad4f38 2020: d09: ex1: add solution 2021-12-06 13:58:36 +01:00
e843016596 2020: d09: ex1: add input 2021-12-06 13:58:36 +01:00
13a1532871 2020: d08: ex2: add solution 2021-12-06 13:58:36 +01:00
2a281d1857 2020: d08: ex2: add input 2021-12-06 13:58:36 +01:00
632a4b004f 2020: d08: ex1: add solution 2021-12-06 13:58:36 +01:00
be6b51f20f 2020: d08: ex1: add input 2021-12-06 13:58:36 +01:00
d3d35e2001 2020: d07: ex2: add solution 2021-12-06 13:58:36 +01:00
e28d9faeef 2020: d07: ex2: add input 2021-12-06 13:58:36 +01:00
ac365651d3 2020: d07: ex1: add solution 2021-12-06 13:58:36 +01:00
f3647021be 2020: d07: ex1: add input 2021-12-06 13:58:36 +01:00
f31334b438 2020: d06: ex2: add solution 2021-12-06 13:58:36 +01:00
57b1172146 2020: d06: ex2: add input 2021-12-06 13:58:36 +01:00
84b83d27a0 2020: d06: ex1: add solution 2021-12-06 13:58:36 +01:00
a8de8b9a3f 2020: d06: ex1: add input 2021-12-06 13:58:36 +01:00
5012cbfcb1 2020: d05: ex2: add solution 2021-12-06 13:58:36 +01:00
c2c3ad7c32 2020: d05: ex2: add input 2021-12-06 13:58:36 +01:00
a8ffb5bf66 2020: d05: ex1: add solution 2021-12-06 13:58:36 +01:00
359dfe5d54 2020: d05: ex1: add input 2021-12-06 13:58:36 +01:00
91dabb5b6a 2020: d04: ex2: add solution 2021-12-06 13:58:36 +01:00
2b84e1c6f1 2020: d04: ex2: add input 2021-12-06 13:58:36 +01:00
4f2385a8ba 2020: d04: ex1: add solution 2021-12-06 13:58:36 +01:00
fdac3b73af 2020: d04: ex1: add input 2021-12-06 13:58:36 +01:00
a67fd01204 2020: d03: ex2: add solution 2021-12-06 13:58:36 +01:00
1108caab20 2020: d03: ex2: add input 2021-12-06 13:58:36 +01:00
c13206f5aa 2020: d03: ex1: add solution 2021-12-06 13:58:36 +01:00
b9199f86f5 2020: d03: ex1: add input 2021-12-06 13:58:36 +01:00
3c766f31dd 2019: d19: ex2: add solution 2021-12-06 13:58:36 +01:00
121678cd81 2019: d19: ex2: add input 2021-12-06 13:58:36 +01:00
d7e663cd0c 2019: d19: ex1: add solution 2021-12-06 13:58:36 +01:00
2375649653 2019: d19: ex1: add input 2021-12-06 13:58:36 +01:00
5297e0bafe 2019: d18: ex2: add solution 2021-12-06 13:58:36 +01:00
b8dfe0d149 2019: d18: ex2: add input 2021-12-06 13:58:36 +01:00
5178c58a5a 2019: d18: ex1: add solution 2021-12-06 13:58:36 +01:00
5f9288aa5f 2019: d18: ex1: add input 2021-12-01 10:42:02 +01:00
0d175c824f 2020: d02: ex2: add solution 2021-12-01 10:42:02 +01:00
776577c118 2020: d02: ex2: add input 2021-12-01 10:42:02 +01:00
a304a38046 2020: d02: ex1: add solution 2021-12-01 10:42:02 +01:00
17a4286307 2020: d02: ex1: add input 2021-12-01 10:42:02 +01:00
6d30ed5992 2020: d01: ex2: add solution 2021-12-01 10:42:02 +01:00
30a7a7da33 2020: d01: ex2: add input 2021-12-01 10:42:02 +01:00
82f57ddea5 2020: d01: ex1: add solution 2021-12-01 10:42:02 +01:00
dad9912dd2 2020: d01: ex1: add input 2021-12-01 10:42:02 +01:00
07223f9d30 2019: d17: ex2: add solution 2021-12-01 10:42:02 +01:00
254093a24d 2019: d17: ex2: add input 2021-12-01 10:42:02 +01:00
ffe7fa42d5 2019: d17: ex1: add solution 2021-12-01 10:42:02 +01:00
035b8b5a0f 2019: d17: ex1: add input 2021-12-01 10:42:02 +01:00
704cf451cb 2019: d16: ex2: add solution 2021-12-01 10:42:02 +01:00
c1c5abc0a4 2019: d16: ex2: add input 2021-12-01 10:42:02 +01:00
78954b23e5 2019: d16: ex1: add solution 2021-12-01 10:42:02 +01:00
e4699300b0 2019: d16: ex1: add input 2021-12-01 10:42:02 +01:00
3fc73336a4 2019: d15: ex2: add solution 2021-12-01 10:42:02 +01:00
ac39fe2abb 2019: d15: ex2: add input 2021-12-01 10:42:02 +01:00
1b8f5bc5e0 2019: d15: ex1: add solution 2021-12-01 10:42:02 +01:00
ed9ba2c14a 2019: d15: ex1: add input 2021-12-01 10:42:02 +01:00
d3445b2ef1 2019: d14: ex2: add solution 2021-12-01 10:42:02 +01:00
2b15ae7552 2019: d14: ex2: add input 2021-12-01 10:42:02 +01:00
213575d822 2019: d14: ex1: add solution 2021-12-01 10:42:02 +01:00
030f45af6c 2019: d14: ex1: add input 2021-12-01 10:42:02 +01:00
3a19846717 2019: d13: ex2: add solution 2021-12-01 10:42:02 +01:00
94dffe573c 2019: d13: ex2: add input 2021-12-01 10:42:02 +01:00
20d47b0048 2019: d13: ex1: add solution 2021-12-01 10:42:02 +01:00
aee22cd938 2019: d13: ex1: add input 2020-11-09 11:52:18 +01:00
9b842e321c 2019: d12: ex2: add solution 2020-11-09 11:52:18 +01:00
ce998da2e2 2019: d12: ex2: add input 2020-11-09 11:52:18 +01:00
968562f2c9 2019: d12: ex1: add solution 2020-11-09 11:52:18 +01:00
2866dc88c9 2019: d12: ex1: add input 2020-11-09 11:52:18 +01:00
3ffe51992d 2019: d11: ex2: add solution 2020-11-09 11:52:18 +01:00
31090e26d3 2019: d11: ex2: add input 2020-11-09 11:52:18 +01:00
53ce8a1258 2019: d11: ex1: add solution 2020-11-09 11:52:18 +01:00
97f8ebd006 2019: d11: ex1: add input 2020-11-09 11:52:18 +01:00
405fb690a7 2019: d10: ex2: add solution 2020-11-09 11:52:18 +01:00
b7754cbafb 2019: d10: ex2: add input 2020-11-09 11:52:18 +01:00
20546f5e81 2019: d10: ex1: clean-up solution 2020-11-09 11:52:18 +01:00
b42bf6c526 2019: d10: ex1: add solution 2020-11-09 11:52:18 +01:00
c8ae320cc3 2019: d10: ex1: add input 2020-11-09 11:52:18 +01:00
87ba3e1726 2019: d09: ex2: add solution 2020-11-09 11:52:18 +01:00
d39f649c64 2019: d09: ex2: add input 2020-11-09 11:52:18 +01:00
0f964aaeab 2019: d09: ex1: add solution 2020-11-09 11:52:18 +01:00
524e3711ae 2019: d09: ex1: add input 2020-11-09 11:52:18 +01:00
f2a968616f 2019: d08: ex2: add solution 2020-11-09 11:52:18 +01:00
cac131629d 2019: d08: ex2: add input 2020-11-09 11:52:18 +01:00
76deb52857 2019: d08: ex1: add solution 2020-11-09 11:52:18 +01:00
3978e39554 2019: d08: ex1: add input 2020-11-09 11:52:18 +01:00
3d9b48a237 2019: d07: ex2: add solution 2020-11-09 11:52:18 +01:00
91621b3394 2019: d07: ex2: add input 2020-11-09 11:52:18 +01:00
f8127cba7a 2019: d07: ex1: add solution 2020-11-09 11:52:18 +01:00
a4ac7ea2aa 2019: d07: ex1: add input 2020-11-09 11:52:18 +01:00
402e014d4d 2019: d06: ex2: add solution 2020-11-09 11:52:18 +01:00
160d779f3e 2019: d06: ex2: add input 2020-11-09 11:52:18 +01:00
026ec029b3 2019: d06: ex1: add solution 2020-11-09 11:52:18 +01:00
625590f31a 2019: d06: ex1: add input 2020-11-09 11:52:18 +01:00
e91fc23ca1 2019: d05: ex2: add solution 2020-11-09 11:52:18 +01:00
be24ef1771 2019: d05: ex2: add input 2020-11-09 11:52:18 +01:00
9b1d63fd54 2019: d05: ex1: add solution 2020-11-09 11:52:18 +01:00
1a96ae91b1 2019: d05: ex1: add input 2020-11-09 11:52:18 +01:00
c7203e4a59 2019: d04: ex2: add solution 2020-11-09 11:52:18 +01:00
a71bb20141 2019: d04: ex1: add solution 2020-11-09 11:52:18 +01:00
bd040e8594 2019: d03: ex2: add solution 2020-11-09 11:52:18 +01:00
65 changed files with 110 additions and 54 deletions

2
.isort.cfg Normal file
View file

@ -0,0 +1,2 @@
[settings]
profile=black

View file

@ -2,7 +2,7 @@
import sys
from fractions import Fraction
from typing import List, NamedTuple, Optional
from typing import Dict, List, NamedTuple, Optional
class Point(NamedTuple):

View file

@ -7,7 +7,7 @@ def is_valid_password(p: int) -> bool:
digits = str(p)
def has_adjacent_digit():
for a, b in zip(digits, digits[1:]):
for (a, b) in zip(digits, digits[1:]):
if a == b:
return True
return False

View file

@ -8,7 +8,7 @@ def is_valid_password(p: int) -> bool:
def has_unique_adjacent_digit():
counts = {d: 0 for d in range(10)}
for a, b in zip(digits, digits[1:]):
for (a, b) in zip(digits, digits[1:]):
if a == b:
counts[int(a)] += 1
return any(count == 1 for count in counts.values())

View file

@ -1,5 +1,7 @@
#!/usr/bin/env python
import sys
from copy import deepcopy
from enum import IntEnum
from typing import List, NamedTuple

View file

@ -5,7 +5,7 @@ import sys
from copy import deepcopy
from dataclasses import dataclass, field
from enum import IntEnum
from typing import List, NamedTuple
from typing import Callable, List, NamedTuple
class ParameterMode(IntEnum):

View file

@ -1,10 +1,11 @@
#!/usr/bin/env python
import itertools
import sys
from copy import deepcopy
from dataclasses import dataclass, field
from enum import IntEnum
from typing import List, NamedTuple
from typing import Callable, List, NamedTuple
class ParameterMode(IntEnum):

View file

@ -1,10 +1,11 @@
#!/usr/bin/env python
import itertools
import sys
from copy import deepcopy
from dataclasses import dataclass, field
from enum import IntEnum
from typing import List, NamedTuple
from typing import Callable, List, NamedTuple
class ParameterMode(IntEnum):

View file

@ -4,6 +4,7 @@ import sys
from cmath import phase
from itertools import groupby
from math import gcd, pi
from pprint import pprint
from typing import NamedTuple, Set, Tuple

View file

@ -3,7 +3,7 @@
import sys
from dataclasses import dataclass, field
from enum import IntEnum
from typing import Iterable, List, NamedTuple, Tuple, TypeVar
from typing import Dict, Iterable, List, NamedTuple, Tuple, TypeVar
class ParameterMode(IntEnum):

View file

@ -3,7 +3,7 @@
import sys
from dataclasses import dataclass, field
from enum import IntEnum
from typing import Iterable, List, NamedTuple, Tuple, TypeVar
from typing import Dict, Iterable, List, NamedTuple, Tuple, TypeVar
class ParameterMode(IntEnum):

View file

@ -2,6 +2,8 @@
import sys
from functools import reduce
from itertools import chain, cycle
from typing import Iterable, List
def main() -> None:

View file

@ -4,7 +4,7 @@ import sys
from copy import deepcopy
from dataclasses import dataclass, field
from enum import IntEnum
from typing import List, NamedTuple
from typing import Iterator, List, NamedTuple, Tuple
class ParameterMode(IntEnum):

View file

@ -2,6 +2,8 @@
import re
import sys
from collections import defaultdict
from copy import deepcopy
from dataclasses import dataclass
from typing import Dict, List, Set, Tuple

View file

@ -41,6 +41,7 @@ def update(grid: Grid) -> Grid:
def solve(grid: Grid) -> int:
for __ in range(6):
grid = update(grid)

View file

@ -41,6 +41,7 @@ def update(grid: Grid) -> Grid:
def solve(grid: Grid) -> int:
for __ in range(6):
grid = update(grid)

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python
import sys
from typing import List
from typing import Callable, Dict, List
"""
E : T [ * T ]*

View file

@ -5,6 +5,7 @@ import itertools
import math
import sys
from collections import defaultdict
from copy import deepcopy
from typing import Dict, Iterator, List, Set, Tuple
Tile = List[List[str]]

View file

@ -2,7 +2,7 @@
import itertools
import sys
from typing import List
from typing import List, Tuple
def solve(circle: List[int]) -> int:

View file

@ -2,7 +2,7 @@
import itertools
import sys
from typing import List
from typing import List, Tuple
def solve(circle: List[int]) -> int:

View file

@ -3,6 +3,7 @@
import itertools
import sys
from collections import defaultdict
from copy import deepcopy
from typing import Dict, Iterator, List, Tuple
Offset = Tuple[int, int]

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import List

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import List

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import List

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import List

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from copy import deepcopy
from typing import List

View file

@ -3,6 +3,7 @@
import itertools
import sys
from collections import Counter
from dataclasses import dataclass
from typing import Iterator, List, TypeVar
T = TypeVar("T")

View file

@ -3,6 +3,7 @@
import itertools
import sys
from collections import Counter
from dataclasses import dataclass
from typing import Iterator, List, TypeVar
T = TypeVar("T")

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import List

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from math import ceil, floor
from typing import List

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from dataclasses import dataclass
from typing import Dict, List, Set

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import Iterator, List, Tuple

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import Iterator, List, Tuple

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import List, Optional, cast

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from typing import Iterator, List, Optional

View file

@ -2,6 +2,7 @@
import itertools
import sys
from copy import deepcopy
from typing import Iterator, List, Set, Tuple
Grid = List[List[int]]
@ -38,7 +39,7 @@ def solve(input: List[str]) -> int:
# Second step, do flashes
has_flashed: Set[Point] = set()
while len(flashes := (excited(levels) - has_flashed)) > 0:
for i, j in flashes:
for (i, j) in flashes:
has_flashed.add((i, j))
for x, y in neighbours_of((i, j)):
levels[x][y] += 1

View file

@ -2,6 +2,7 @@
import itertools
import sys
from copy import deepcopy
from typing import Iterator, List, Set, Tuple
Grid = List[List[int]]
@ -38,7 +39,7 @@ def solve(input: List[str]) -> int:
# Second step, do flashes
has_flashed: Set[Point] = set()
while len(flashes := (excited(levels) - has_flashed)) > 0:
for i, j in flashes:
for (i, j) in flashes:
has_flashed.add((i, j))
for x, y in neighbours_of((i, j)):
levels[x][y] += 1

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from collections import defaultdict
from typing import Dict, List, Set
@ -11,7 +12,7 @@ def solve(input: List[str]) -> int:
def parse() -> Map:
res: Map = defaultdict(set)
for start, to in map(lambda s: s.split("-"), input):
for (start, to) in map(lambda s: s.split("-"), input):
res[start].add(to)
res[to].add(start)

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import itertools
import sys
from collections import defaultdict
from typing import Dict, List, Set
@ -11,7 +12,7 @@ def solve(input: List[str]) -> int:
def parse() -> Map:
res: Map = defaultdict(set)
for start, to in map(lambda s: s.split("-"), input):
for (start, to) in map(lambda s: s.split("-"), input):
res[start].add(to)
res[to].add(start)

View file

@ -1,8 +1,9 @@
#!/usr/bin/env python
import heapq
import itertools
import sys
from typing import Iterator, List, NamedTuple, Set
from typing import Iterator, List, NamedTuple, Set, Tuple
class Point(NamedTuple):

View file

@ -1,8 +1,9 @@
#!/usr/bin/env python
import heapq
import itertools
import sys
from typing import Iterator, List, NamedTuple, Set
from typing import Iterator, List, NamedTuple, Set, Tuple
class Point(NamedTuple):

View file

@ -5,7 +5,7 @@ import functools
import itertools
import sys
from dataclasses import dataclass
from typing import Iterable, Iterator, List, Tuple
from typing import Iterable, Iterator, List, Tuple, TypeVar
RawPacket = List[bool]

View file

@ -6,7 +6,7 @@ import itertools
import math
import sys
from dataclasses import dataclass
from typing import Callable, Dict, Iterable, Iterator, List, Tuple
from typing import Callable, Dict, Iterable, Iterator, List, Tuple, TypeVar
RawPacket = List[bool]

View file

@ -1,6 +1,7 @@
#!/usr/bin/env python
import itertools
import math
import sys
from typing import Iterator, List, NamedTuple

View file

@ -1,5 +1,7 @@
#!/usr/bin/env python
import itertools
import math
import sys
from typing import Iterator, List, NamedTuple

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import functools
import itertools
import sys
from copy import deepcopy

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import functools
import itertools
import sys
from dataclasses import dataclass

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import functools
import itertools
import sys
from dataclasses import dataclass

View file

@ -3,7 +3,7 @@
import functools
import itertools
import sys
from typing import List, NamedTuple, Optional, Set, Tuple
from typing import Iterator, List, NamedTuple, Optional, Set, Tuple, cast
class Point(NamedTuple):

View file

@ -3,7 +3,7 @@
import functools
import itertools
import sys
from typing import List, NamedTuple, Optional, Set, Tuple
from typing import Iterator, List, NamedTuple, Optional, Set, Tuple, cast
class Point(NamedTuple):

View file

@ -3,7 +3,7 @@
import enum
import functools
import sys
from typing import Iterator, List, NamedTuple, Optional, Tuple
from typing import Iterator, List, NamedTuple, Optional, Tuple, cast
class Point(NamedTuple):

View file

@ -3,7 +3,7 @@
import enum
import functools
import sys
from typing import Iterator, List, NamedTuple, Optional, Tuple
from typing import Iterator, List, NamedTuple, Optional, Tuple, cast
class Point(NamedTuple):

View file

@ -1,8 +1,9 @@
#!/usr/bin/env python
import enum
import itertools
import sys
from typing import List, NamedTuple, Set
from typing import Iterable, Iterator, List, NamedTuple, Set
class Point(NamedTuple):
@ -60,13 +61,11 @@ def solve(input: List[str]) -> int:
for x in range(map.dimensions.x):
print(
"".join(
(
"v"
if Point(x, y) in map.south
else ">"
if Point(x, y) in map.east
else "."
)
"v"
if Point(x, y) in map.south
else ">"
if Point(x, y) in map.east
else "."
for y in range(map.dimensions.y)
)
)

View file

@ -8,6 +8,7 @@ FileSystem = dict[str, Union[int, "FileSystem"]]
def solve(input: list[str]) -> int:
def build_tree(input: list[str], i: int = 0) -> tuple[FileSystem, int]:
fs: FileSystem = {}
while i < len(input):

View file

@ -8,6 +8,7 @@ FileSystem = dict[str, Union[int, "FileSystem"]]
def solve(input: list[str]) -> int:
def build_tree(input: list[str], i: int = 0) -> tuple[FileSystem, int]:
fs: FileSystem = {}
while i < len(input):

View file

@ -20,7 +20,7 @@ class HeightMap:
def reachable_neighbours(self, p: Point) -> Iterator[Point]:
reachable_height = self.heights[p.x][p.y] + 1
for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)):
for (dx, dy) in ((-1, 0), (1, 0), (0, -1), (0, 1)):
x, y = p.x + dx, p.y + dy
if x < 0 or x >= len(self.heights):
continue

View file

@ -20,7 +20,7 @@ class HeightMap:
def reachable_neighbours(self, p: Point) -> Iterator[Point]:
reachable_height = self.heights[p.x][p.y] + 1
for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)):
for (dx, dy) in ((-1, 0), (1, 0), (0, -1), (0, 1)):
x, y = p.x + dx, p.y + dy
if x < 0 or x >= len(self.heights):
continue

View file

@ -2,6 +2,7 @@
import itertools
import sys
from collections import deque
from collections.abc import Iterator
from typing import NamedTuple

View file

@ -25,7 +25,7 @@ class Operator(str, enum.Enum):
class Monkey:
def get_value(self, monkeys: dict[str, "Monkey"]) -> int:
raise NotImplementedError
raise NotImplemented
@dataclasses.dataclass

View file

@ -93,7 +93,7 @@ class MathObserver:
class Monkey:
def get_value(self, monkeys: dict[str, "Monkey"]) -> Num:
raise NotImplementedError
raise NotImplemented
@dataclasses.dataclass

View file

@ -1,6 +1,8 @@
#!/usr/bin/env python
import functools
import math
import operator as op
import sys
from collections import Counter
from enum import StrEnum

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python
import dataclasses
import itertools
import sys
from enum import StrEnum

View file

@ -2,6 +2,7 @@
import functools
import heapq
import itertools
import sys
from collections.abc import Iterator
from enum import Enum

33
flake.lock generated
View file

@ -3,11 +3,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
@ -21,11 +21,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
@ -43,11 +43,11 @@
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"lastModified": 1660459072,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
"type": "github"
},
"original": {
@ -58,11 +58,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1731890469,
"narHash": "sha256-D1FNZ70NmQEwNxpSSdTXCSklBH1z2isPR84J6DQrJGs=",
"lastModified": 1701336116,
"narHash": "sha256-kEmpezCR/FpITc6yMbAh4WrOCiT2zg5pSjnKrq51h5Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5083ec887760adfe12af64830a66807423a859a7",
"rev": "f5c27c6136db4d76c30e533c20517df6864c46ee",
"type": "github"
},
"original": {
@ -75,6 +75,9 @@
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": [
"futils"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
@ -84,11 +87,11 @@
]
},
"locked": {
"lastModified": 1732021966,
"narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=",
"lastModified": 1700922917,
"narHash": "sha256-ej2fch/T584b5K9sk1UhmZF7W6wEfDHuoUYpFN8dtvM=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "3308484d1a443fc5bc92012435d79e80458fe43c",
"rev": "e5ee5c5f3844550c01d2131096c7271cec5e9b78",
"type": "github"
},
"original": {

View file

@ -22,6 +22,7 @@
repo = "pre-commit-hooks.nix";
ref = "master";
inputs = {
flake-utils.follows = "futils";
nixpkgs.follows = "nixpkgs";
nixpkgs-stable.follows = "nixpkgs";
};
@ -39,11 +40,15 @@
src = self;
hooks = {
nixpkgs-fmt = {
black = {
enable = true;
};
ruff-format = {
isort = {
enable = true;
};
nixpkgs-fmt = {
enable = true;
};
};
@ -53,11 +58,12 @@
devShell = pkgs.mkShell {
buildInputs = with pkgs; [
(python3.withPackages (ps: with ps; [
black
isort
mypy
z3
]))
pyright
ruff
];
inherit (self.checks.${system}.pre-commit) shellHook;