Compare commits
No commits in common. "2eea8f113d750f4bfe90d30af4ec8b90ba78405d" and "44079842d203220f7f99a4604393f367bbd621bf" have entirely different histories.
2eea8f113d
...
44079842d2
|
|
@ -5,6 +5,4 @@ edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
colored = "3.0.0"
|
colored = "3.0.0"
|
||||||
itertools = "0.14.0"
|
|
||||||
petgraph = "0.8.3"
|
|
||||||
regex = "1.12.2"
|
regex = "1.12.2"
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,497 +0,0 @@
|
||||||
98254,50455
|
|
||||||
98254,51678
|
|
||||||
98235,51678
|
|
||||||
98235,52880
|
|
||||||
97862,52880
|
|
||||||
97862,54126
|
|
||||||
98170,54126
|
|
||||||
98170,55348
|
|
||||||
98077,55348
|
|
||||||
98077,56531
|
|
||||||
97689,56531
|
|
||||||
97689,57637
|
|
||||||
96893,57637
|
|
||||||
96893,58863
|
|
||||||
96899,58863
|
|
||||||
96899,60170
|
|
||||||
97225,60170
|
|
||||||
97225,61251
|
|
||||||
96487,61251
|
|
||||||
96487,62456
|
|
||||||
96302,62456
|
|
||||||
96302,63504
|
|
||||||
95563,63504
|
|
||||||
95563,64780
|
|
||||||
95595,64780
|
|
||||||
95595,66007
|
|
||||||
95424,66007
|
|
||||||
95424,67085
|
|
||||||
94829,67085
|
|
||||||
94829,68132
|
|
||||||
94177,68132
|
|
||||||
94177,69198
|
|
||||||
93597,69198
|
|
||||||
93597,70571
|
|
||||||
93679,70571
|
|
||||||
93679,71581
|
|
||||||
92966,71581
|
|
||||||
92966,72553
|
|
||||||
92201,72553
|
|
||||||
92201,73783
|
|
||||||
91912,73783
|
|
||||||
91912,74838
|
|
||||||
91298,74838
|
|
||||||
91298,75645
|
|
||||||
90292,75645
|
|
||||||
90292,76555
|
|
||||||
89476,76555
|
|
||||||
89476,77942
|
|
||||||
89347,77942
|
|
||||||
89347,78924
|
|
||||||
88619,78924
|
|
||||||
88619,79839
|
|
||||||
87806,79839
|
|
||||||
87806,80963
|
|
||||||
87250,80963
|
|
||||||
87250,81892
|
|
||||||
86448,81892
|
|
||||||
86448,82814
|
|
||||||
85638,82814
|
|
||||||
85638,83468
|
|
||||||
84550,83468
|
|
||||||
84550,84606
|
|
||||||
83959,84606
|
|
||||||
83959,85308
|
|
||||||
82934,85308
|
|
||||||
82934,85766
|
|
||||||
81705,85766
|
|
||||||
81705,86447
|
|
||||||
80696,86447
|
|
||||||
80696,87298
|
|
||||||
79831,87298
|
|
||||||
79831,88549
|
|
||||||
79261,88549
|
|
||||||
79261,89319
|
|
||||||
78305,89319
|
|
||||||
78305,89822
|
|
||||||
77162,89822
|
|
||||||
77162,89953
|
|
||||||
75794,89953
|
|
||||||
75794,90604
|
|
||||||
74779,90604
|
|
||||||
74779,91165
|
|
||||||
73712,91165
|
|
||||||
73712,92092
|
|
||||||
72845,92092
|
|
||||||
72845,93117
|
|
||||||
72007,93117
|
|
||||||
72007,92994
|
|
||||||
70588,92994
|
|
||||||
70588,94234
|
|
||||||
69820,94234
|
|
||||||
69820,94583
|
|
||||||
68635,94583
|
|
||||||
68635,95191
|
|
||||||
67558,95191
|
|
||||||
67558,95449
|
|
||||||
66346,95449
|
|
||||||
66346,95121
|
|
||||||
64948,95121
|
|
||||||
64948,95955
|
|
||||||
63943,95955
|
|
||||||
63943,96113
|
|
||||||
62725,96113
|
|
||||||
62725,96661
|
|
||||||
61612,96661
|
|
||||||
61612,97153
|
|
||||||
60474,97153
|
|
||||||
60474,96735
|
|
||||||
59145,96735
|
|
||||||
59145,97078
|
|
||||||
57979,97078
|
|
||||||
57979,97243
|
|
||||||
56781,97243
|
|
||||||
56781,97716
|
|
||||||
55619,97716
|
|
||||||
55619,97410
|
|
||||||
54369,97410
|
|
||||||
54369,98082
|
|
||||||
53205,98082
|
|
||||||
53205,98230
|
|
||||||
51989,98230
|
|
||||||
51989,97571
|
|
||||||
50756,97571
|
|
||||||
50756,97753
|
|
||||||
49549,97753
|
|
||||||
49549,98019
|
|
||||||
48329,98019
|
|
||||||
48329,98099
|
|
||||||
47105,98099
|
|
||||||
47105,97844
|
|
||||||
45901,97844
|
|
||||||
45901,97294
|
|
||||||
44739,97294
|
|
||||||
44739,97476
|
|
||||||
43497,97476
|
|
||||||
43497,97825
|
|
||||||
42210,97825
|
|
||||||
42210,97423
|
|
||||||
41037,97423
|
|
||||||
41037,97367
|
|
||||||
39798,97367
|
|
||||||
39798,96775
|
|
||||||
38679,96775
|
|
||||||
38679,96167
|
|
||||||
37580,96167
|
|
||||||
37580,96134
|
|
||||||
36326,96134
|
|
||||||
36326,95543
|
|
||||||
35237,95543
|
|
||||||
35237,95144
|
|
||||||
34091,95144
|
|
||||||
34091,94615
|
|
||||||
32995,94615
|
|
||||||
32995,94781
|
|
||||||
31619,94781
|
|
||||||
31619,93974
|
|
||||||
30635,93974
|
|
||||||
30635,93797
|
|
||||||
29373,93797
|
|
||||||
29373,92636
|
|
||||||
28584,92636
|
|
||||||
28584,92671
|
|
||||||
27194,92671
|
|
||||||
27194,92034
|
|
||||||
26147,92034
|
|
||||||
26147,90801
|
|
||||||
25459,90801
|
|
||||||
25459,90403
|
|
||||||
24283,90403
|
|
||||||
24283,89917
|
|
||||||
23147,89917
|
|
||||||
23147,89500
|
|
||||||
21949,89500
|
|
||||||
21949,88206
|
|
||||||
21385,88206
|
|
||||||
21385,87650
|
|
||||||
20283,87650
|
|
||||||
20283,86800
|
|
||||||
19410,86800
|
|
||||||
19410,85754
|
|
||||||
18715,85754
|
|
||||||
18715,85603
|
|
||||||
17217,85603
|
|
||||||
17217,84345
|
|
||||||
16729,84345
|
|
||||||
16729,83501
|
|
||||||
15859,83501
|
|
||||||
15859,82837
|
|
||||||
14795,82837
|
|
||||||
14795,81579
|
|
||||||
14375,81579
|
|
||||||
14375,80822
|
|
||||||
13402,80822
|
|
||||||
13402,80184
|
|
||||||
12259,80184
|
|
||||||
12259,78795
|
|
||||||
12065,78795
|
|
||||||
12065,77809
|
|
||||||
11369,77809
|
|
||||||
11369,77030
|
|
||||||
10371,77030
|
|
||||||
10371,76106
|
|
||||||
9562,76106
|
|
||||||
9562,74790
|
|
||||||
9377,74790
|
|
||||||
9377,73793
|
|
||||||
8693,73793
|
|
||||||
8693,72892
|
|
||||||
7821,72892
|
|
||||||
7821,72017
|
|
||||||
6862,72017
|
|
||||||
6862,70764
|
|
||||||
6637,70764
|
|
||||||
6637,69545
|
|
||||||
6379,69545
|
|
||||||
6379,68704
|
|
||||||
5252,68704
|
|
||||||
5252,67545
|
|
||||||
4843,67545
|
|
||||||
4843,66140
|
|
||||||
5123,66140
|
|
||||||
5123,65191
|
|
||||||
4145,65191
|
|
||||||
4145,64074
|
|
||||||
3611,64074
|
|
||||||
3611,62801
|
|
||||||
3608,62801
|
|
||||||
3608,61472
|
|
||||||
3901,61472
|
|
||||||
3901,60474
|
|
||||||
2846,60474
|
|
||||||
2846,59212
|
|
||||||
2920,59212
|
|
||||||
2920,57954
|
|
||||||
3073,57954
|
|
||||||
3073,56822
|
|
||||||
2471,56822
|
|
||||||
2471,55634
|
|
||||||
2160,55634
|
|
||||||
2160,54435
|
|
||||||
1875,54435
|
|
||||||
1875,53198
|
|
||||||
2015,53198
|
|
||||||
2015,51969
|
|
||||||
2257,51969
|
|
||||||
2257,50758
|
|
||||||
2282,50758
|
|
||||||
2282,50423
|
|
||||||
94860,50423
|
|
||||||
94860,48342
|
|
||||||
2368,48342
|
|
||||||
2368,47097
|
|
||||||
1766,47097
|
|
||||||
1766,45933
|
|
||||||
2525,45933
|
|
||||||
2525,44743
|
|
||||||
2746,44743
|
|
||||||
2746,43515
|
|
||||||
2655,43515
|
|
||||||
2655,42342
|
|
||||||
2983,42342
|
|
||||||
2983,41118
|
|
||||||
3007,41118
|
|
||||||
3007,39829
|
|
||||||
2774,39829
|
|
||||||
2774,38720
|
|
||||||
3394,38720
|
|
||||||
3394,37465
|
|
||||||
3407,37465
|
|
||||||
3407,36244
|
|
||||||
3587,36244
|
|
||||||
3587,35114
|
|
||||||
4077,35114
|
|
||||||
4077,34140
|
|
||||||
4994,34140
|
|
||||||
4994,33074
|
|
||||||
5590,33074
|
|
||||||
5590,31843
|
|
||||||
5763,31843
|
|
||||||
5763,30594
|
|
||||||
5931,30594
|
|
||||||
5931,29452
|
|
||||||
6370,29452
|
|
||||||
6370,28522
|
|
||||||
7241,28522
|
|
||||||
7241,27453
|
|
||||||
7812,27453
|
|
||||||
7812,26312
|
|
||||||
8257,26312
|
|
||||||
8257,25408
|
|
||||||
9113,25408
|
|
||||||
9113,24031
|
|
||||||
9200,24031
|
|
||||||
9200,23175
|
|
||||||
10122,23175
|
|
||||||
10122,22308
|
|
||||||
11005,22308
|
|
||||||
11005,21470
|
|
||||||
11907,21470
|
|
||||||
11907,20413
|
|
||||||
12514,20413
|
|
||||||
12514,19537
|
|
||||||
13352,19537
|
|
||||||
13352,18377
|
|
||||||
13860,18377
|
|
||||||
13860,17643
|
|
||||||
14858,17643
|
|
||||||
14858,16856
|
|
||||||
15785,16856
|
|
||||||
15785,15832
|
|
||||||
16471,15832
|
|
||||||
16471,14620
|
|
||||||
16999,14620
|
|
||||||
16999,14072
|
|
||||||
18151,14072
|
|
||||||
18151,12912
|
|
||||||
18764,12912
|
|
||||||
18764,12226
|
|
||||||
19789,12226
|
|
||||||
19789,11978
|
|
||||||
21139,11978
|
|
||||||
21139,11161
|
|
||||||
22040,11161
|
|
||||||
22040,9943
|
|
||||||
22677,9943
|
|
||||||
22677,9926
|
|
||||||
24128,9926
|
|
||||||
24128,9337
|
|
||||||
25184,9337
|
|
||||||
25184,8409
|
|
||||||
26042,8409
|
|
||||||
26042,7797
|
|
||||||
27094,7797
|
|
||||||
27094,7307
|
|
||||||
28209,7307
|
|
||||||
28209,7061
|
|
||||||
29438,7061
|
|
||||||
29438,6451
|
|
||||||
30486,6451
|
|
||||||
30486,5391
|
|
||||||
31353,5391
|
|
||||||
31353,4879
|
|
||||||
32468,4879
|
|
||||||
32468,4840
|
|
||||||
33757,4840
|
|
||||||
33757,4494
|
|
||||||
34924,4494
|
|
||||||
34924,4012
|
|
||||||
36046,4012
|
|
||||||
36046,3959
|
|
||||||
37295,3959
|
|
||||||
37295,3126
|
|
||||||
38334,3126
|
|
||||||
38334,3239
|
|
||||||
39613,3239
|
|
||||||
39613,2564
|
|
||||||
40717,2564
|
|
||||||
40717,2853
|
|
||||||
42008,2853
|
|
||||||
42008,2670
|
|
||||||
43206,2670
|
|
||||||
43206,2090
|
|
||||||
44357,2090
|
|
||||||
44357,1762
|
|
||||||
45554,1762
|
|
||||||
45554,2084
|
|
||||||
46805,2084
|
|
||||||
46805,2482
|
|
||||||
48039,2482
|
|
||||||
48039,1581
|
|
||||||
49230,1581
|
|
||||||
49230,1659
|
|
||||||
50456,1659
|
|
||||||
50456,2018
|
|
||||||
51669,2018
|
|
||||||
51669,1956
|
|
||||||
52891,1956
|
|
||||||
52891,2193
|
|
||||||
54094,2193
|
|
||||||
54094,2609
|
|
||||||
55271,2609
|
|
||||||
55271,2933
|
|
||||||
56446,2933
|
|
||||||
56446,2626
|
|
||||||
57715,2626
|
|
||||||
57715,2378
|
|
||||||
59000,2378
|
|
||||||
59000,2984
|
|
||||||
60125,2984
|
|
||||||
60125,3267
|
|
||||||
61310,3267
|
|
||||||
61310,3453
|
|
||||||
62521,3453
|
|
||||||
62521,3695
|
|
||||||
63723,3695
|
|
||||||
63723,4637
|
|
||||||
64704,4637
|
|
||||||
64704,4590
|
|
||||||
66001,4590
|
|
||||||
66001,5549
|
|
||||||
66941,5549
|
|
||||||
66941,5859
|
|
||||||
68117,5859
|
|
||||||
68117,6136
|
|
||||||
69315,6136
|
|
||||||
69315,6915
|
|
||||||
70290,6915
|
|
||||||
70290,7153
|
|
||||||
71521,7153
|
|
||||||
71521,8054
|
|
||||||
72417,8054
|
|
||||||
72417,8244
|
|
||||||
73694,8244
|
|
||||||
73694,8468
|
|
||||||
74979,8468
|
|
||||||
74979,9798
|
|
||||||
75587,9798
|
|
||||||
75587,10499
|
|
||||||
76571,10499
|
|
||||||
76571,11039
|
|
||||||
77667,11039
|
|
||||||
77667,11227
|
|
||||||
79038,11227
|
|
||||||
79038,12404
|
|
||||||
79672,12404
|
|
||||||
79672,12733
|
|
||||||
80977,12733
|
|
||||||
80977,13711
|
|
||||||
81752,13711
|
|
||||||
81752,14626
|
|
||||||
82570,14626
|
|
||||||
82570,15348
|
|
||||||
83567,15348
|
|
||||||
83567,16696
|
|
||||||
83938,16696
|
|
||||||
83938,17486
|
|
||||||
84857,17486
|
|
||||||
84857,18429
|
|
||||||
85614,18429
|
|
||||||
85614,18778
|
|
||||||
87070,18778
|
|
||||||
87070,19757
|
|
||||||
87813,19757
|
|
||||||
87813,21197
|
|
||||||
87945,21197
|
|
||||||
87945,22088
|
|
||||||
88772,22088
|
|
||||||
88772,23049
|
|
||||||
89511,23049
|
|
||||||
89511,23822
|
|
||||||
90547,23822
|
|
||||||
90547,25084
|
|
||||||
90826,25084
|
|
||||||
90826,25924
|
|
||||||
91795,25924
|
|
||||||
91795,27089
|
|
||||||
92210,27089
|
|
||||||
92210,28402
|
|
||||||
92314,28402
|
|
||||||
92314,29161
|
|
||||||
93515,29161
|
|
||||||
93515,30242
|
|
||||||
94093,30242
|
|
||||||
94093,31603
|
|
||||||
94009,31603
|
|
||||||
94009,32639
|
|
||||||
94681,32639
|
|
||||||
94681,33723
|
|
||||||
95255,33723
|
|
||||||
95255,34810
|
|
||||||
95847,34810
|
|
||||||
95847,36069
|
|
||||||
95912,36069
|
|
||||||
95912,37269
|
|
||||||
96132,37269
|
|
||||||
96132,38512
|
|
||||||
96157,38512
|
|
||||||
96157,39596
|
|
||||||
96836,39596
|
|
||||||
96836,40686
|
|
||||||
97592,40686
|
|
||||||
97592,41917
|
|
||||||
97680,41917
|
|
||||||
97680,43180
|
|
||||||
97510,43180
|
|
||||||
97510,44434
|
|
||||||
97251,44434
|
|
||||||
97251,45627
|
|
||||||
97447,45627
|
|
||||||
97447,46818
|
|
||||||
97729,46818
|
|
||||||
97729,48017
|
|
||||||
98055,48017
|
|
||||||
98055,49234
|
|
||||||
98160,49234
|
|
||||||
98160,50455
|
|
||||||
|
|
||||||
|
|
@ -1,187 +0,0 @@
|
||||||
[###.#.] (1,3,5) (0,2,5) (1,3) (2,3,5) (0,2,4) (0,1,2,4) {44,25,63,29,33,40}
|
|
||||||
[.#..#] (0,1,2) (0,2,4) (0,2,3) (3,4) {157,11,157,141,5}
|
|
||||||
[####.##.] (0,1,4,5,6,7) (1,3,5) (1,7) (0,5,6) (1,6) (0,5) (0,3,4,6,7) (0,1,3,4,5,6) (0,1,2,4,6) (4,5) {26,55,3,15,30,51,27,26}
|
|
||||||
[.#.##] (0,1,3) (3,4) (0,1,2,3) (0,1,2,4) (1) (1,2,4) (1,4) {29,62,39,28,57}
|
|
||||||
[#......#] (0,7) (1,2,4,6,7) (0,1,3,4,5,7) (0,1,2,3,5,6) (1,2,6,7) (1,2,5) (1,2,3,6,7) (3,4) {187,222,214,211,36,185,213,48}
|
|
||||||
[.#.#] (0,2) (1,3) (0,3) (1,2) (1) (3) {26,175,20,180}
|
|
||||||
[..##] (2) (1,3) (3) (0,2,3) {17,13,19,35}
|
|
||||||
[.#.#] (0,2,3) (1,3) {16,14,16,30}
|
|
||||||
[.#.....#] (0,1,3,4,5,7) (0,2,3,4,5,6,7) (0,4,5,6) (0,1,3,4,5) (1,4,7) (2,3,5,6,7) (1,3) (0,3,4,5,6) (4,7) {165,42,14,161,199,166,148,50}
|
|
||||||
[#.#####] (0,1,3,5,6) (2,3,4,5,6) (0,3,4,5,6) (1,4) (2,3,4,6) (3,4,5) (1,2,3,5,6) (0,3,4) {40,47,25,83,68,65,48}
|
|
||||||
[..##.#] (0,2) (1,3,4) (2,3,5) (1,2,4) (0,1,4,5) (1,2,3,4,5) (0,5) (1,2) {38,167,178,138,154,148}
|
|
||||||
[.###.] (0,1,3,4) (2,4) (1,3,4) {20,35,20,35,55}
|
|
||||||
[#.##] (3) (1,3) (0,3) (0,2) (0,1,3) (0) {42,36,8,56}
|
|
||||||
[#.#.#] (0,1,2) (1,3,4) (0,1) (1,3) (2,4) (0,1,4) (1,2,4) {28,50,33,6,46}
|
|
||||||
[##.##.] (0,2,3,4) (2,4) (3,4,5) (0,1,4,5) (0,1,2,4) (0,1,2,3) {36,28,27,19,48,23}
|
|
||||||
[##..###] (0,1,3,4,5) (0,3) (2,3,5) (1,2,4,6) (1,4,5) (1,2,3,6) (0,2,4,5,6) {30,50,48,39,51,42,38}
|
|
||||||
[###.] (0,1,2) (0,1,2,3) {152,152,152,20}
|
|
||||||
[####..] (0,1,2,4) (1,3) (1,5) (0,2) {24,31,24,3,17,11}
|
|
||||||
[....#.##] (0,7) (2,4,7) (5) (1,4,5,7) (0,2,3,4) (1,2) (0,1,2,3,4,5,6) (3,6) (5,6) (0,2,3,4,5) {24,27,38,32,57,36,21,41}
|
|
||||||
[#.#.#] (0,3,4) (0,4) (1,3,4) (0,2) (3,4) (1) {141,15,4,39,163}
|
|
||||||
[#.###..] (1,4,5) (3,5) (2,6) (0,1,3,4,5,6) (0,2,3,4) (3,4,5,6) (6) {13,14,11,37,38,38,44}
|
|
||||||
[#..####.#] (0,1) (0,3,4,6,8) (1,2,3,4,5,6,7,8) (0,2,3,4,5,6) (1,2) (2,4) (0,2,4,5,8) (1) (0,1,3,6,7,8) (3,7) (6,7,8) {42,36,53,204,53,39,56,206,52}
|
|
||||||
[.#####..#.] (0,1,2,3,5,8,9) (0,1,2,3,4,7,8,9) (0,1,3,5,6,7,8,9) (4,6) (0,4,6) (0,1,2,3,7) (2,6,7,9) (3,4,8) (3,4,5,7) (0,3,4,9) (3,6,7,8,9) (2,3,5) {96,61,54,102,80,57,67,62,61,84}
|
|
||||||
[...#.] (2,3) (0,1,3) (0,2) (0,1,2) (0,4) (0) {22,2,31,14,3}
|
|
||||||
[...###] (0,1,4,5) (2,3) (3) (1,2,3,4,5) (0,1,2) (0,1,3,5) {42,47,28,35,16,31}
|
|
||||||
[...###..##] (2,3,4,7,9) (0,1,2,3,4,6,9) (3,4,6) (3,8) (0,1,2,3,4,5,9) (1,9) (2,3,5,6,7,8) (0,1,2,4) (0,1,4,5,6,7,8) (0,4,5,6,7,8) (1,4) {33,49,48,63,65,41,55,55,52,35}
|
|
||||||
[..##.] (1,2) (3,4) (0,3,4) (0,2) (2,3) {15,0,11,24,22}
|
|
||||||
[..#.###] (0,1,2,3) (0,1,4,6) (0,4,5,6) (0,3,4,6) (2,3,4,5) {53,25,20,40,55,19,44}
|
|
||||||
[#.#.#.#...] (2,5,8) (0,1,2,3,4) (0,2,4,6) (1,4,5,6,8,9) (3,7,8,9) (0,2,3,5,6,7,9) (3,5,6,8,9) (2,3,4,5,6,7,9) (2,4,5,6,7) {41,14,69,227,51,220,229,60,198,223}
|
|
||||||
[..###.] (2) (0,2,3,5) (1,4,5) (0,1,3) (1,4) (1,2,3,4) (2,4,5) {25,44,50,34,52,44}
|
|
||||||
[...#..#] (3,6) (0,3,4,5) (0,2,6) (0,1,2,5) (0,1,2,3,4,6) (1,2,3,4) {38,25,29,44,39,14,29}
|
|
||||||
[.#..#..#] (0,1,3,4) (4,6) (1,3,4,7) (3,5,7) (3) (0,3,7) (2,4,7) {15,25,19,55,49,11,5,48}
|
|
||||||
[##...#..#.] (5,6) (1,3,5,7,8,9) (1,3,4,8,9) (2,3,5,7) (2,5) (0,3,5,7,8) (0,4,7,9) (1,2,3,4,5,6,8,9) (1,2,7,8) {25,40,49,52,24,71,29,56,60,27}
|
|
||||||
[.#.......#] (2,9) (0,1,3,4,7,8) (1,6,8) (0,2,3,4,6,7,9) (7,8) (0,1,3,4,5,6,7,9) (0,1,2,9) (5,6,7) (1,2,3,4,6,8) (1,2,3,4,5,6,8,9) (0,3,5,6,7,8,9) (0,2,3,4,5,6,8) (4,5,6,7,9) {234,68,67,267,70,239,278,236,297,233}
|
|
||||||
[#.##...#.] (1,2,3,4,5,6,7,8) (0,1,3,5,8) (0,3,5,6) (3,4,5,6) (3,8) (0,6,7,8) (0,1,4,5,6,7,8) (1,2,3,6,7) (0,1,5,6,7) {39,46,18,33,20,34,53,47,34}
|
|
||||||
[##.#] (2,3) (1) (0,1,3) {9,24,129,138}
|
|
||||||
[...####] (0,2,3,4,6) (0,1,2,4,5,6) (0,2,4,5,6) (0,1,3,4) (1,4,6) {34,30,18,29,46,5,30}
|
|
||||||
[##.##] (0,3) (1,3,4) (0,1,2) (0,1,3) (1,4) (2,4) (0,4) {174,55,39,159,43}
|
|
||||||
[###.] (1,2,3) (0,2) (1,2) (0,1,2) {177,189,203,7}
|
|
||||||
[..#..] (1,4) (0,3) (2) {4,11,19,4,11}
|
|
||||||
[#...#] (2,3,4) (1,2,3,4) (0,1,4) (0,1) {14,17,12,12,17}
|
|
||||||
[.##.####.] (1,2,3,4,5,7,8) (1,2,4,5,6,7) (1,2,3,4,6,7) (4,5) (0,4,5,8) (0,1,2,3,4,5,8) (5,6) (0,1,2,6,7) {10,43,43,19,51,42,41,39,7}
|
|
||||||
[##...#..] (0,1,3,4,5,6) (0,2,3,6,7) (4,6) (0,1,2,3,4,5) (1,2,3,4,5,7) (3,4,5,6,7) (0,1,2,3,5,6) (1,2,3,5,6) (0,1,3,5,6) (1,2,7) {207,240,65,248,49,242,226,34}
|
|
||||||
[#..####.#] (1,3,5,6,7) (1,2,4,5,6,7) (0,4,5,6,7) (0,1,2,3,6,7,8) (0,1,2,3,8) (2,3,6) (0,3,5,6,7,8) (2,3,4,6,7,8) {42,58,60,67,51,60,90,84,41}
|
|
||||||
[#.#####..#] (0,3,7) (1,4,5,6,7,8) (0,1,2,4,5,6,8,9) (6,7) (0,3,6,9) (1,2,3,4) (1,2,5,6,8) (0,3,4,8,9) (0,1,2,3,4,5,7,8) (1,4,5,9) (0,2,3,4,7,8,9) {153,42,41,156,65,32,131,55,39,153}
|
|
||||||
[####.#.###] (0,2,3,4,5,6,7) (0,3,4,5,6,7) (0,1,2,3,5,7,8,9) (0,1,8) (0,1,2,9) (0,1,2,3,5,6) (1,2,3,4,5,8,9) (0,3,4,5,8,9) (0,2,4,5,6,8,9) {81,65,69,56,44,72,39,33,63,58}
|
|
||||||
[.#.#.] (0,4) (4) (1,2) (1,3) (1,3,4) (1,2,3) (0,1,4) {19,45,21,19,45}
|
|
||||||
[#####.##..] (4,5) (1,4,6,7,9) (6) (1,2,8) (7,8) (0,5,6,7,8) (1,2,9) (1,3,5) {9,50,26,14,24,37,36,20,16,30}
|
|
||||||
[#....####] (0,1,2,3,5,7) (0,3,4,5,7,8) (0,3,5,6,8) (0,2,3,4,5,6,7,8) (1,5,6,7) (0,2,3,6,7,8) (1,2,3,6,8) (0,4,7) (1,2,5) {40,28,39,49,7,33,48,33,42}
|
|
||||||
[##..#..] (3,4,6) (0,1,3,4,5) (1,3) (1,2) (0,1,4,5) (0,3,4,5,6) (0,1,2,3,4,6) (0,4,5,6) {61,71,25,61,65,47,39}
|
|
||||||
[.##.#.##.] (0,2,3,4,6,7) (0,2,3,4,7,8) (0,1,2,7) (0,2,3,5,8) (0,6) (1,4,5,6,7) (0,1,2,3,4,6,7) (0,1,2,4,6,7,8) (0,1,8) {73,49,52,31,35,3,28,53,32}
|
|
||||||
[####..##.#] (0,1,2,3,4,6) (0,7,9) (0,1,2,3,5,6,7,8,9) (1,2,5,6,7,9) (1,3,8,9) (1,2,3,4,5,6,7,8) (1,2,3,6,7,9) (5,6,7,9) (1,2,3,6,7) (1,4,6) {16,95,61,61,32,52,85,65,42,64}
|
|
||||||
[#...#....] (0,4) (2,3,5,6) (2,4,5,6,8) (0,2,3,7,8) (0,2,3,4,6,7,8) (2,5,8) (1,2,5,6,8) (3,4,5,8) {9,0,27,23,24,33,12,7,37}
|
|
||||||
[.#.#..##.#] (0,2,3,4,5,7,8) (0,3,4,5,6,8,9) (0,1,2,3,5,6,7,9) (1,2,3,5,6,8) (2,7,8) (0,3,4,5,6,9) (2,4,6,8) (3,7,8) (0,3,4,5,6,7,8,9) (0,1,3,5,7,8,9) {57,30,29,74,36,65,50,52,58,53}
|
|
||||||
[###.#] (0,1,4) (0,3,4) (2) {20,1,3,19,20}
|
|
||||||
[..##.#..] (3,4,5) (0,1,2,4,7) (0,2,5,6,7) (0,2,3,5,6) (0,2,4,5,6,7) (2,3,5) {39,1,57,32,27,62,38,31}
|
|
||||||
[#..##.#..#] (2,3,6,9) (6,7) (2,4,5,8) (0,1,2,5,6,8,9) (3,9) (0,1,3,4,5,8,9) (0,1,2,3,4,5,6,8,9) (0,2,4,5,6) (2,5,8) (1) (0,1,4,6,7,8,9) (0,1,2,4,5,6,7,8) (1,2,6) {65,81,91,28,74,84,83,41,84,40}
|
|
||||||
[###.#] (0,1,2,4) (3,4) (2,3) (0) (1,4) {37,38,30,20,48}
|
|
||||||
[#.#.] (0) (2,3) (3) (1,3) {20,1,1,7}
|
|
||||||
[.###..#.] (0,7) (0,2,4) (3,5,6) (3,5) (2,4,5,6,7) (0,1,3,4,6) (0,3,4,5) (0,6,7) {49,14,13,41,42,37,43,27}
|
|
||||||
[#.....#] (2,4,5) (0,1,5) (1,6) (2,3,5,6) (2,4) {20,21,35,2,33,36,3}
|
|
||||||
[####..] (0,1,4,5) (1,2,4,5) (0,1,2,4) (0,1,2,3) (2,4,5) (0,2) {166,52,198,19,46,34}
|
|
||||||
[...#] (1) (0,1,2) (0,2) (1,3) {201,37,201,16}
|
|
||||||
[.#####..#] (0,5) (1,6,8) (3) (1,3,5,6,8) (2,5) (4,6) (0,4,5,7) {19,12,4,16,28,35,32,8,12}
|
|
||||||
[.#.#] (0,2,3) (0,1,3) (0,1) (1,3) (2,3) {38,27,14,23}
|
|
||||||
[####....] (0,1,2,5,7) (0,2,3,4,6,7) (3,6) (0,1,2,3,4,5,6) (1,6) (4,7) (0,3,4,5,7) (2,5) (1,4,5) {42,45,30,50,63,50,49,51}
|
|
||||||
[#.#...#] (0,3,4,5,6) (0,1,2,3,4) (0,1,3,4,5) (2,3,4,5,6) (1,2,5,6) (0,1,5) (1,2,4) {183,184,185,186,198,42,36}
|
|
||||||
[..#.#.##.] (0,2,8) (0,7,8) (7,8) (0,5,8) (2,6) (1,6) (0,2,3,5,7,8) (0,3,5,6,8) (0,2,4,5,7) (0,1,2,3) {59,202,50,27,8,39,221,39,49}
|
|
||||||
[.#.#######] (2,4) (3,4,6,9) (1,3,4,5,6,7,8,9) (3,4,5,6,7) (0,1,2,3,4,6) (1,2,3,4,5,6,7,8,9) (0,4,8) (0,1,4,5,6,8,9) (0,1,3,4,6,7,8,9) (0,1,2,3,4,5,6,8,9) {54,55,46,250,281,224,254,222,55,51}
|
|
||||||
[#....] (0,4) (2,3) (1,2,3) (1,4) (0,1,4) {28,130,107,107,44}
|
|
||||||
[..###] (2,3,4) (1,2,3,4) (0,2,3) (0,1,4) {117,117,22,22,129}
|
|
||||||
[#.....#..#] (1,3,4,6,8) (0,2,3,4,5,7,9) (2,3,4,8) (0,4,8) (5,7) (6,7) (0,1,3,4,6,7,8,9) (0,1,2,4,5,7,8) {34,38,37,53,64,18,40,47,57,23}
|
|
||||||
[###.] (0,1,2) (1,3) {7,7,7,0}
|
|
||||||
[#...] (1,3) (0,2) (0,3) (0,1,3) {45,18,18,32}
|
|
||||||
[...#.#.] (1,2,6) (1,4,6) (0,2,3,5) (3,5) (3,4) {13,37,32,29,22,25,37}
|
|
||||||
[....##] (0,3) (1,2,3,4) (1,5) (0,1,3,4) (2,4,5) (2,3,4) (0,1,2) (2,5) {43,228,44,44,46,195}
|
|
||||||
[.#..#] (1,2) (0,1,4) (0,2) (1,4) (0,3) (1,2,3,4) (0,1,3) {40,214,192,38,35}
|
|
||||||
[#..#.#.#..] (2,3,4,5) (1,3,4,6,7,9) (0,2,3,4,5,7,8,9) (2,6,8,9) (5,8) (0,5,8) (0,1,2,3,5,6,8) (0,1,2,3,4,6,7,8) (1,4) (2,5) (0,1,4,7,9) {37,30,63,35,49,44,33,34,55,46}
|
|
||||||
[######.] (0,3,4,6) (2,3,5) (2,5) (2,3) (0,1,2,4,5) (1,2,6) (0,6) (2,4,5,6) (0,1,2,5) {9,26,74,36,11,36,28}
|
|
||||||
[.#..] (3) (0,1,3) (1) (0,2) {28,25,20,24}
|
|
||||||
[.#..] (2) (1,3) (0,3) (1) (0,1) {18,22,17,16}
|
|
||||||
[.####.#.#.] (0,1,4,5,6,8,9) (4,9) (1,2,3,4,8,9) (1,3,4,5,6,8) (4,8) (0,2,3,9) (1,7,8) (0,2,3,4,5,6,7,8) (0,2,3,6,7) (0,1,2,3,4,9) (1,2,3,5,6,8,9) {27,42,30,39,62,22,26,10,50,35}
|
|
||||||
[##.#..##..] (0,3,8) (0,2,3,9) (1,2,3,4,6,7,8,9) (4,6,7) (0,4,5,7,8,9) (1,2,3,4,5,8,9) (0,3,4,5,8,9) (0,3,4,7,9) {49,21,30,60,68,28,29,50,50,63}
|
|
||||||
[.##.#.] (1,3) (1,2) (4,5) (0,1,3) (1,4) (5) (0,3,4) {15,25,3,20,4,4}
|
|
||||||
[.#....#.#] (2,3,6) (0,1,2,4,5,6,7,8) (0,1,2,3,4,5,7,8) (5,6,7) (3,4) (0,1,3,7) (0,4,8) (0,2,8) (1,2,4,5,7,8) (0,1,3,4,6,7) {216,214,66,206,67,47,47,215,56}
|
|
||||||
[#..#..] (1,2,3,5) (0,3) (0,1,4) (0,2,3,4,5) (0,3,4) (2,4,5) (0,1,3,5) {45,26,35,51,39,45}
|
|
||||||
[###.#] (0,4) (2) (0,2,3) (0,2,3,4) (0,1,2,4) (1,3) {20,8,21,25,6}
|
|
||||||
[##..#..#] (0,1,4,5,7) (5,7) (0,3,5,6,7) (1,3,4,6) (0,1,4,5) (1,2,4,5) {21,21,5,5,21,32,5,19}
|
|
||||||
[.###..] (0,2,3,4) (3,5) (1,2,5) (0,2,3) {19,9,28,25,2,15}
|
|
||||||
[#.#..] (0,1,3,4) (0,2) (0,2,3,4) {35,14,21,32,32}
|
|
||||||
[.##..##.] (1,2,4) (0,1,5) (2,3) (0,1,2,3,4,6) (1,3,5,7) (1,2,7) {33,54,134,119,25,21,15,11}
|
|
||||||
[#.#.###] (0,1,2) (0,2,5) (0,3,4,6) (0,1,3,5) (1,2,4,5,6) (0,1,2,4,5,6) (0,3,5,6) {179,163,145,37,12,35,21}
|
|
||||||
[###...] (1,2,4) (1,4,5) (2,3,4) (1,2) (0,1,5) {10,47,38,10,29,19}
|
|
||||||
[###.] (0,1,2) (0,1) (0,3) {203,36,16,167}
|
|
||||||
[.##.....] (0,3,4,5,7) (0,1,2) (2,3,4,5,6,7) (0,2,4,5,7) (0,1,3,4,5,6) (0,4,5,6,7) (0,1,2,4,6) {64,34,52,22,53,39,29,38}
|
|
||||||
[.#.##....#] (5,8,9) (1,2,3,4,6,7) (6,7) (1,2,4,6) (0,2,3,5,8,9) (3,4,7,9) (2,6,9) (0,1,3,6,7,9) (1,2,5,6,7) (0,1,2,4,5,6,7) {48,71,86,48,42,48,96,71,19,50}
|
|
||||||
[..##.##] (0,2,5,6) (3,4,5,6) (1,3,5,6) (0,2,3,5,6) (2,3,5,6) (1,2,3,4,5,6) (1,4) (0,4) (2,4,5,6) {37,42,62,70,65,87,87}
|
|
||||||
[#.#.####.] (0,1,2,3,6,7,8) (0,1,2,6,7) (0,2,6,7) (1,4,5) (5,6) (0,1,4,6,8) (0,3,4,6,7,8) {10,21,7,4,15,32,30,8,6}
|
|
||||||
[##.#.##.#.] (0,1,2,5,7) (0,1,2,3,4,5,7,9) (0,3,4,5,7) (1,2,4,5,6,8) (0,2,3,7,9) (0,2,3,5,6,7,8) (0,2,4,5,6,7,8,9) (0,3,5) (1,2,4,5,6,8,9) {102,56,95,67,60,105,42,82,42,54}
|
|
||||||
[#...###.#] (0,1,2,3,5,6,7,8) (1,2,6,8) (0,1,2,4) (2,3,4,6) (2,3,5,7) (1,3,4,5,7,8) (4,6,7) {6,37,45,50,34,40,23,40,33}
|
|
||||||
[#.#.#.] (0,1,2,3,5) (0,1,2,4) (1,2,3,4,5) (0,1,3,5) {50,52,38,35,19,35}
|
|
||||||
[#..#.##] (0,1,2,4,6) (3,6) (2,3) (0,5) (0,2,3,4,6) (0,5,6) (0,1,3,5,6) (0,3) (3,5) {36,12,12,51,5,49,32}
|
|
||||||
[...#.##..#] (1,6) (3,4,5) (0,1,3,4,5,6,8,9) (0,6,9) (5,7,9) (2,4,5) (0,4,6,8) (0,2,3,4,5,8,9) (0,1,2,3,6,7,8,9) (7) (3,6) {42,13,11,42,51,41,56,24,31,32}
|
|
||||||
[...#] (2,3) (3) (0) (1) (0,1) {16,26,0,17}
|
|
||||||
[...#..##..] (3,5,6,8) (0,1,3,4,6,7,9) (0,2,4,5,9) (2,3,6,9) (0,1,2,6,7,9) (1,5,7,9) (5,7) (3,6,7) (2,3,4,5,6,7,8) (0,1,4,5,6,7,8) {54,40,50,58,61,73,82,63,48,51}
|
|
||||||
[.#...] (2,3,4) (1,2,3,4) (0,2,3) (2) (1,3,4) (4) (0,1) {18,34,34,47,41}
|
|
||||||
[..#.#] (0,1,3) (0,1,2,3) (1,4) (0,1,2) (0,2) (2,3) {22,22,14,17,4}
|
|
||||||
[#..#......] (1,4,7) (2,3,4,8) (7,8) (0,1,2,4,7,8) (1,3,5,6,7,8) (2,4) (0,2,3,4) (0,1,2,3,5,6,8) (1,8) (0,3,5) (0,1,2,3,5,8,9) {26,45,30,20,36,20,8,41,52,0}
|
|
||||||
[..#...] (1,2,3) (0,1,2,5) (0,2,3,4) (0,2,4) (1) (2,3,5) (1,2,3,4) {20,35,47,31,25,12}
|
|
||||||
[##..#.#.#] (0,1,2,3,4,5,7) (1,5,6,7,8) (1,3,4,5,6) (3,6,7,8) (0,5,7) (0,4,7) (2,4,6) (0,1,3,4,5,7) (1,3,4,5) (0,1,3) {27,45,31,46,40,35,50,45,29}
|
|
||||||
[.#.####] (4) (4,5,6) (1,2,3,5,6) (2,3) (2,3,4,5,6) (1,2) (0,5) {9,34,73,55,51,57,48}
|
|
||||||
[..####....] (0,1,2,5,6,7) (1,3,4,6) (1,3,4,6,7,8,9) (0,1,2,3,8,9) (0,1,5) (0,1,2,3,4,5,7,9) (3,6) (0,2,3,8) (0,1,4,6,7,8,9) (0,7) {63,83,29,73,65,14,74,66,54,56}
|
|
||||||
[...#] (1,2) (0,1) (0,3) (2,3) (0,1,3) {14,5,4,17}
|
|
||||||
[#..#] (1) (0) (2) (0,1,3) (0,1,2) {16,20,15,2}
|
|
||||||
[##..#.] (1,2,3) (1,2,3,4,5) (0,2,4) (0,2,3,5) {25,187,212,193,201,188}
|
|
||||||
[##.###.#.#] (5) (0,2,5,7,9) (6,8) (0,3,4,5,8,9) (0,2,3,6,7,8,9) (0,1,2,3,8,9) (4,6,7,9) (2,5,6,8) (0,2,6,7,8) (0,3,4) (0,1,2,3,5,7,8,9) (0,1,3,4,8) {75,26,62,51,38,46,65,57,90,54}
|
|
||||||
[.#.##] (0,1,3) (2,3) (1,3,4) {12,16,16,32,4}
|
|
||||||
[#.#....###] (0,5) (0,1,8) (0,1,2,3,4,5,6,7,9) (1,8) (2,3,5,6,9) (0,2,3,4,5,7,8,9) (1,2,3,4,5,7) (0,2,7,8,9) (1,3,5,6,7,8,9) (0,2,3,4,5,6,8,9) {60,34,64,61,44,74,41,52,46,62}
|
|
||||||
[.....#] (2,3,5) (0,2,4) (1,2,3,5) (3,5) (2,5) (0,3,5) (0,1,2) (0,3,4,5) {30,14,26,16,12,20}
|
|
||||||
[...#..#.] (0,1,2,3,6) (0,4,6,7) (1,3,4,5) (1,2,5,6,7) (0,1,2,3,4,7) (0,1,5) (5,6) (0,2,4,5,6,7) {45,38,37,33,26,26,42,23}
|
|
||||||
[####] (0,1,3) (2,3) (0,1) {20,20,19,24}
|
|
||||||
[#.##.] (2,4) (2,3,4) (0,1,3) (0,1) (0,2,3) {27,22,33,21,28}
|
|
||||||
[#####.#] (3,4,5,6) (0,4) (0,1,3,5) (2,4,5) (3,4,5) (3,5) (3,5,6) {17,10,7,159,46,166,16}
|
|
||||||
[###..] (3,4) (1,2) (0,1,4) (1,4) {5,18,13,1,6}
|
|
||||||
[#.#.##.###] (0,2,3,4,6,7,8,9) (1,3,5,6,8,9) (0,1,3,4,5,6,9) (3,5,6) (0,1,2,3,8) (2,3,8) (0,3,4,9) (0,1,2,4,5,7,8,9) (0,3,5,6) (2,4,5,6,9) (0,5,7,8) (0,5,6,7,8,9) (0,1,3,4,5,6,7,8) {122,57,78,106,78,115,90,72,105,76}
|
|
||||||
[###....##] (3,6,7,8) (0,3,6) (0,1,2,3,5) (0,1,3,4,6,7,8) (4,7) (0,1,2,3,6) (0,1,5,7) (0,1,2,7,8) (6,8) (5,8) (0,1,4,5,6,7,8) {112,94,52,84,40,47,99,75,86}
|
|
||||||
[##......##] (2) (0,1,2,4,5,7,8,9) (0,1,2,3,4,5,8,9) (0,2,4,5,6,7,9) (0,1,4,7) (0,4,9) (0,1,6,8) (4,6) (5) (3,4,6,8) (0,3,5,6) (0,3,5,6,7,9) {58,20,22,42,60,49,45,8,26,37}
|
|
||||||
[....#..] (1,3,4) (2,6) (0,1,2,3,4) (1,2,3,4,5) (1,2,4,6) (0,5,6) (0,1,3,5,6) (4,6) {20,51,42,49,54,32,37}
|
|
||||||
[####.] (0,2,3) (0,4) (2,3,4) (0,2) (0,1,3,4) (0,3,4) {48,13,47,53,41}
|
|
||||||
[.#.##.#..#] (4,5,7) (0,2,3,4,5,6,7) (0,3,4,5,6) (1,3,5,7) (2,8) (0,1,2,3,4,5,6,9) (0,1,3,4,5,6,8,9) (0,1,3,4,5,6,7,8,9) (2,4,5,8) (3,4,5,9) (4,7,8) (3,6,7,9) (0,2,3,5,6,8,9) {42,30,63,73,70,92,46,50,68,48}
|
|
||||||
[..#...] (0) (0,1,2) (4) (2,3,5) (1,2,4,5) (3,4) (1,2) {33,40,47,27,50,18}
|
|
||||||
[#.##...##] (1,2,3,4,6,7,8) (5,6,8) (0,2,4,6,7) (0,5,8) (2,4,6,7) (0,2,3,6,7,8) (1,3,4) (0,1,2,3,6,7) {46,137,63,155,160,6,64,63,30}
|
|
||||||
[##.....##] (0,1,2,6,7) (0,1,3,4,6,7) (0,1,3,4,8) (2,6) (0,2,3,4,6,8) (2,6,8) (2,3,6,7) (3,5,6) (4,8) (0,1,3,4) (0,1,3,4,5,6,7,8) {75,61,74,98,68,34,123,60,50}
|
|
||||||
[#..######.] (0,3,4,5,7,8) (0,2,3,5,9) (1,2,3,5,6,7,8,9) (0,1,3,4,5,6,7,8,9) (3,4,5,7,9) (1,2,8) (6) (0,3,4) (2,3,9) (1) (7,8) (0,1,2,4,6,7,8,9) {170,155,44,188,180,174,145,180,173,170}
|
|
||||||
[...###] (0,1,5) (0,1,3,4) (0,3,4,5) (1,2,5) {59,58,18,39,39,57}
|
|
||||||
[#...#..#] (0,1,2,3,4,6) (4,6) (1,5) (0,1,2,3,5,7) (5,6) (0,1,2,3,6) (0,1) (1,2,4,5,6,7) {26,44,32,19,24,182,194,17}
|
|
||||||
[#.#.#] (0,1,2) (3) (0,1,3) (0,2,4) {21,17,14,16,4}
|
|
||||||
[#.###.#] (2,3) (1,6) (0,4,5,6) (0,3,5,6) (2,4,5) {17,10,23,22,18,30,27}
|
|
||||||
[#.##] (0) (0,1,2) (3) (0,2,3) (1,2) (1,3) {48,52,56,35}
|
|
||||||
[.#....] (1,2,3,4) (0,2,5) (0,1,5) (0,3,4,5) (2,3,4) {21,23,26,27,27,21}
|
|
||||||
[#.###.] (3,4,5) (2,4,5) (1,3,4,5) (0,5) (1,2,3,4,5) {132,25,18,42,50,182}
|
|
||||||
[..#####] (0,1,2,3,4,5) (2,3,4,5,6) (0,6) (0,3,5) (1,2,3,4,5) (1,2,4,6) {38,21,24,27,24,27,22}
|
|
||||||
[..##.##] (1,2,3,5,6) (0,2,3,5,6) (2,4,6) (4,5) (0,1,2,3) (1,2,4,6) (0,4) (0,3,5,6) (2,3,5,6) {49,27,65,47,57,42,50}
|
|
||||||
[#....#] (0,1,2,3,4) (0,2,5) (1,3,4) (0,5) (0,2,3,4) (0,1,2,4,5) {178,166,166,154,168,41}
|
|
||||||
[..#....] (0,2,3,4,6) (0,2,6) (1,2,4,5,6) (0,1,3,4,6) (2) (1,2,3,5,6) {43,46,77,48,49,33,76}
|
|
||||||
[.##..##] (1,2,3,4,5,6) (2,3,5,6) (0,1,2,3,4) (1,2,5,6) (0,1,2,3) (1,3,4,5,6) (2,4) {31,56,66,55,55,28,28}
|
|
||||||
[##.##..#.#] (0,1,3,4,5,6,9) (0,1,5,6,7,8,9) (1,4,5,6,8,9) (0,3,8) (0,3,5,7) (1,4,5,9) (2,4,5) (1,7) {189,49,16,182,58,81,32,23,166,49}
|
|
||||||
[#.....#.] (6,7) (0,6) (1) (0,1,2,3,4,5,6) (4,6) (0,1,2,3,4,6) (1,2,3,4,6) (0,3) (1,5,6) (0,1,2,3,5,7) {46,198,194,211,209,8,228,3}
|
|
||||||
[..#.#..#] (0,1,2,4,5,7) (1,5) (0,2,3,4,5,6) (0,2,3,5,6) (0,1,3,6) (3,6) (4,5) {62,28,55,62,52,75,62,18}
|
|
||||||
[#.###.##.] (1,2,6,8) (0,2,3,4,5,7,8) (1,5,8) (0,1,3,4,5,6) (0,2,3,4,6,7) (5) (5,7) (0,1,3,4,5) (1,6,8) (5,6,7) (0,1,3,5,6,7,8) {34,213,177,34,21,66,191,27,202}
|
|
||||||
[.#......#] (0,1,2,4,7) (1,3,4) (0,1,2,4,5,6,8) (0,1,3,4) (0,3,4,5,6,7,8) (2,4,6,7) (2,3,4,5,6,7) (0,3,5,8) (1,2,3,4,5,6,8) (1,2,4,5,6,7,8) (0,1,5,7,8) {51,57,39,52,78,54,51,36,46}
|
|
||||||
[..###.###.] (0,1,2,4,6,9) (2,4,5,6,7) (0,3,5) (1,2,5,7,9) (1,2,8,9) (0,1,2,4,6,7,8,9) (2,3,4,6,7,8) (1,2,4,9) (0,1,2,3,5,6,8,9) (1,3,8) (0,1,2,4,5,6,7,9) (5,6) {50,66,77,44,46,65,67,47,43,56}
|
|
||||||
[.#.##..] (3,4,6) (0,3,4,5) (3,4,5,6) (0,1,3,4,6) (0,1,2,5) (0,2,5,6) (1,5,6) (0,4) (1,2,3,4,5) {45,51,38,57,68,68,62}
|
|
||||||
[..#.] (0,3) (1,2,3) (1,3) {8,19,6,27}
|
|
||||||
[.#...] (3,4) (2,4) (0,3,4) (1,3) (2) {1,0,22,1,12}
|
|
||||||
[#...####] (1,2,5) (3,5,6,7) (3,4) (0,1,6,7) (1,3,6,7) (0,4,5,6,7) {30,33,0,30,16,27,60,60}
|
|
||||||
[####..##..] (0,4,5,6,7,9) (0,2,4,6,9) (0,1,2,3,5,6,7,8) (1,9) (0,1,3,4,5,6,7,8) (0,1,3,7,9) (3,7) (1,3,4,6,7,9) (1,2,3,4,5,7,8,9) (0,1,2,6,8) (0,1,2,4,8,9) (0,1,2,7,8,9) (1,3,5,7,8) {211,227,193,67,188,46,42,85,204,212}
|
|
||||||
[.####] (2,3) (0,1) (1,2,3,4) (0,3,4) {7,14,13,13,7}
|
|
||||||
[#..##...#] (3,6,8) (3,5,7,8) (0,3,4,8) (0,7) (1,2,3,5,6,7) (0,1,8) (2,3,4,5) {22,28,189,229,176,209,33,46,49}
|
|
||||||
[#..##] (0,2,3,4) (0,1,2,4) (1,2,3) {14,174,175,162,14}
|
|
||||||
[###.#####] (0,5) (0,2,3,4,5,7,8) (0,2,3,4,6,7,8) (0,1,2,3,5,7,8) (0,1,3,4,7,8) (4,6,7,8) (1,2,5,6,8) (0,6,8) (3,4,5,6) {72,32,43,50,51,56,40,62,74}
|
|
||||||
[.#.###.#] (0,1,2,3,5,6,7) (1,2,5,6) (1,4,5,6,7) (1,3,7) (0,2) (0,2,3,4,5,6,7) (2,3) (4,5) {32,42,172,154,27,48,45,40}
|
|
||||||
[#.......] (4,6) (1,3,4,5,6,7) (0,1,2,3,6,7) (0,1,3,4,5,6,7) (1,2,3,4,7) (0,1,2,7) {40,60,38,46,39,22,31,60}
|
|
||||||
[###..#..##] (0,1,2,5,8) (2,3,4,5,7) (4,5,6,7) (1,2,6,9) (1,3,5,8,9) (3,5,7,9) (0,1,2,3,4,6,7,9) (1,7) (0,2,3,5,6,7) (1,2,3,5,6,7,8,9) (0,1,2,4,7,8,9) (0,3,6,8,9) {43,59,63,69,60,67,53,82,46,58}
|
|
||||||
[##.##.#] (0,1,2,3,5,6) (0,1,6) (0,1,2,3,5) (0,2,3,4) (0,1,3,4,5,6) (0,3,4) (1,3,5) (1,2) {64,70,51,73,34,53,27}
|
|
||||||
[#....#] (0,5) (4,5) (2,3,4,5) (0,3) (0,1,2,3,5) (1,2,3) (1,3) (3) {13,20,32,45,18,27}
|
|
||||||
[..###..#.] (0,1,4,5,6,8) (2,3) (1,2,3,4,7,8) (0,1,2,3,4,5,6) (2,3,4,6,7,8) (0,6,7) (1,4,6,7) (0,1,5,6,7) (1,2,3,4,5,6,7) {66,84,43,43,66,67,91,62,26}
|
|
||||||
[...#.###.] (0,1,4,5,6,8) (0,1,2,3,4,7) (0,1,3,4,5,6,7,8) (0,1,5,6) (0,2,3,4,5,7) (1,3,7) (0,2,3,4,7) (1,2,3,4,5,7) {73,67,44,58,73,52,36,58,29}
|
|
||||||
[.##.##..#] (2,3,4) (0,2,4,5,6,7,8) (0,7,8) (0,1,2,3,4,6,8) (0,2,5,8) (2,3,4,5,7) (0,1,2,7) (1,5) {47,27,64,47,58,29,31,32,45}
|
|
||||||
[###.] (1,3) (0,1,2) {2,7,2,5}
|
|
||||||
[#.##..##] (1,4) (3,5) (0,3) (0,3,4,5,6,7) (0,2,5,6) (6,7) (1,2,4,5,6) (0,1,2,3,6,7) (0,1,3,4,6,7) {176,47,23,186,34,29,47,38}
|
|
||||||
[..##.#.] (0,1,2,4) (2,3,6) (0,1,3,4,5,6) (2,3,5) (0,2,4,5) {129,116,35,136,129,143,121}
|
|
||||||
[.#.#.#] (0,1,2,4,5) (0,1,5) (1,3,4) (0,1,2) (1,3,5) {17,34,15,17,27,20}
|
|
||||||
[####.#.] (0,1,2,3,6) (0,2,3) (0,6) (0,1,4,6) (1,2,3,4,5) (0,1,4) {34,37,23,23,36,15,8}
|
|
||||||
[####.#.#] (0,1,2,3,4,6) (3,5) (0,2,5) (0,1,2,3,4,5) (0,1,7) (0,3,6) (0,1,2,4,6) {70,38,46,63,31,44,39,7}
|
|
||||||
[..##.] (1,3) (3) (2,3) (0,1,4) {1,18,20,44,1}
|
|
||||||
[.#....#.] (0,7) (1,2,3,4,5,7) (0,1,2,5,6,7) (2,3) (1,3) (1,2,4,5,6,7) (1,4,6) (0,2,5) {50,64,53,33,28,43,41,42}
|
|
||||||
[.##.#.##] (1,2,7) (0,2,3,4,5,6,7) (4,6) (0,1,2,3,4,7) (0,1,2,4) (0,6,7) (0,1,5) (2,3) (3,5,6,7) {42,42,46,28,37,15,40,59}
|
|
||||||
[..###..#.] (7,8) (3,4) (1,2,7) (0,2,7) (0,1,3,4,5,6,7) (1,5,7,8) (3,5) (1) (0,1,3,4,8) (3,6) {49,63,24,69,46,24,38,54,30}
|
|
||||||
[#.....] (0,1,3,4,5) (0,1,5) (0,3) (0,3,4) (1,2,5) (1,2,4,5) (0,1,2,4) {53,76,41,33,45,71}
|
|
||||||
[....###..#] (0,2,3,4,6,8) (0,1,3,4,5,6,7,9) (1,7,9) (1,3,5,6,8) (1,6) (2,3,4,5,8) (5) (0,1,7,8) {44,61,26,55,35,49,49,36,66,16}
|
|
||||||
[.##...#.#.] (0,1,2,3,4,6,7,9) (6,7) (0,3,4,6,7,8,9) (1,2,4,5,6,8,9) (0,2,4,5,6,7,8,9) (1,2,3,4,6,7,8,9) (0,1,3,4,9) (0,3,4,5,6,7,9) (0,1,2,4,6,7,8) {56,70,54,72,93,31,93,73,50,93}
|
|
||||||
[..#...##..] (2,6,7) (0,1,2,3,4,5,8,9) (0,2,3,4,6) (1,2,3,4,5,6,7,9) (2,3,4,5,7,9) (0,8,9) (0,1,2,3,4,5,7,9) (0,2,3,4,5,6,7,8) {41,32,58,52,52,49,40,45,30,35}
|
|
||||||
[#..##.] (0,1,2,4,5) (0,1,3) (2,3,4) (0,2,5) (1,3,4,5) (4) (4,5) (1,3,4) {46,55,34,43,52,36}
|
|
||||||
[#.#.] (0) (2) (1,2,3) (1,2) (0,3) (0,1) {205,41,37,191}
|
|
||||||
[##.#] (0,1) (2) (3) (1,3) (0) (0,1,3) {150,22,8,18}
|
|
||||||
|
|
||||||
|
|
@ -1,636 +0,0 @@
|
||||||
ngx: mgt dpm fiq
|
|
||||||
obs: din fhn tde
|
|
||||||
arj: zlz olw
|
|
||||||
jne: dlg rvw nez znh akl ykj qjd ted ziq nfm lyx fqq clj amn yfx svy hgr vpf lph xjq zhs yqs tjy jyv
|
|
||||||
qfo: rsh pym
|
|
||||||
qlu: ssk
|
|
||||||
iap: zde ahj
|
|
||||||
zsn: nwa
|
|
||||||
yob: sot yzl ipk
|
|
||||||
quk: gbk xee
|
|
||||||
cam: nfy krb gcg
|
|
||||||
yzl: keh hqp hyd rwd
|
|
||||||
ewy: lwq rar ibn
|
|
||||||
kqf: cba
|
|
||||||
ine: nyv
|
|
||||||
ofy: vqw ayn kfa
|
|
||||||
eyc: nmk ydv
|
|
||||||
ull: dfr yoo
|
|
||||||
zuv: bsr fwe zwf
|
|
||||||
nfi: nby xnr cqg
|
|
||||||
xry: jne
|
|
||||||
nmk: tuk zin
|
|
||||||
ukc: pym rsh
|
|
||||||
inl: spm vzs vfa
|
|
||||||
xkn: ylg mub kfe dxo
|
|
||||||
izh: ogy huj umq
|
|
||||||
yes: joo foc gbi obs
|
|
||||||
vfa: yqi rnb xog epo
|
|
||||||
tzd: mcs
|
|
||||||
qhl: bcs ilh pwi
|
|
||||||
nzo: igj vev ezq ovi
|
|
||||||
jru: uag hmh
|
|
||||||
fbr: vkw
|
|
||||||
rll: out
|
|
||||||
joj: eje
|
|
||||||
ise: asm
|
|
||||||
dht: out
|
|
||||||
tcj: kdy jne cba
|
|
||||||
yvv: ovi igj vev ezq
|
|
||||||
wrp: toe qyy
|
|
||||||
urz: vfk
|
|
||||||
amn: lbv
|
|
||||||
olr: loc wqu
|
|
||||||
jyv: ine fgu rkh sca
|
|
||||||
mfw: fbc
|
|
||||||
irq: yzw wff arj
|
|
||||||
yke: btx
|
|
||||||
gto: irq voj mjc kwr
|
|
||||||
gwe: vev ovi
|
|
||||||
ipk: hyd rwd hqp
|
|
||||||
cba: jyv lyx clj fqq qjd ykj ted ziq zhs nfm vpf qvq xjq lph znh akl dlg rvw yfx svy nez hgr
|
|
||||||
gcg: gwv gpd
|
|
||||||
mzd: dse zsv
|
|
||||||
xit: igj
|
|
||||||
gbk: dpm
|
|
||||||
hqp: aev cps yxl
|
|
||||||
qjz: ahg mqz
|
|
||||||
xjq: mod fxr
|
|
||||||
ovi: ndd xdb rti qzo bys zct eyc qjz jyg ymo tyc rql wdt zfm qhl mwq laf wtr flm zxn
|
|
||||||
pym: sxa nxd
|
|
||||||
ubi: lsf rur
|
|
||||||
mhb: xdl cso ivw klt wwj
|
|
||||||
dwd: dsb sqa
|
|
||||||
ilh: kxo kqf
|
|
||||||
hgg: fbc uvx tui
|
|
||||||
ghf: fej uzq xqk vup aum
|
|
||||||
cqg: urz qww yea qqm
|
|
||||||
kfa: joj
|
|
||||||
xvy: xnr ikz
|
|
||||||
okt: vyo
|
|
||||||
vnr: vip
|
|
||||||
ube: hbp
|
|
||||||
nzn: uvx
|
|
||||||
eje: ssk you nor smf lua
|
|
||||||
wck: dgm fft uoa
|
|
||||||
xvi: cba
|
|
||||||
laf: ilh fyl bcs
|
|
||||||
lwq: yqm pbh dht
|
|
||||||
xlh: xee
|
|
||||||
ebs: kdy jne
|
|
||||||
xog: hvz
|
|
||||||
rql: loz xhp qdd fjr kxy
|
|
||||||
enu: out
|
|
||||||
cmq: nzn bcr czj
|
|
||||||
ozq: cba kdy
|
|
||||||
eys: vev igj
|
|
||||||
rkh: ejo vcu
|
|
||||||
ihu: bsr
|
|
||||||
ekp: eys ozn zvk nzo oap
|
|
||||||
car: jne kdy cba
|
|
||||||
lmy: rvh
|
|
||||||
lnm: jne
|
|
||||||
qgr: uvx
|
|
||||||
hmh: cfm
|
|
||||||
dbx: unc dgm
|
|
||||||
zry: dke xcl
|
|
||||||
onc: wce
|
|
||||||
sot: keh
|
|
||||||
koc: lua
|
|
||||||
aiv: odt cfm
|
|
||||||
umq: cps yxl
|
|
||||||
jhm: uvx fbc
|
|
||||||
zbu: ezq vev
|
|
||||||
iys: ozq
|
|
||||||
ike: hez
|
|
||||||
foc: tde
|
|
||||||
qhm: hcn vjs jru jxv
|
|
||||||
vvx: ezq ovi
|
|
||||||
xya: kdr
|
|
||||||
rvw: zms cbk
|
|
||||||
odn: fbc tui
|
|
||||||
yqs: tpz zrm ljr
|
|
||||||
mjc: yzw arj ydm csw
|
|
||||||
vqw: joj dac qgv ppy omh
|
|
||||||
ttt: ise
|
|
||||||
vaw: yes dke
|
|
||||||
tcl: yzm cmq qqt
|
|
||||||
hbp: tui uvx fbc
|
|
||||||
ojr: fft uoa
|
|
||||||
vzs: amk xog rnb
|
|
||||||
zrn: sjt jvv jhm
|
|
||||||
meb: rxj qif
|
|
||||||
gov: aev uho cps yxl
|
|
||||||
kwr: csw ydm yzw
|
|
||||||
gxb: ueq znm
|
|
||||||
cdj: nor smf lua ssk you
|
|
||||||
ctb: zbu
|
|
||||||
nzv: paa car
|
|
||||||
ydv: arh nhm zin wtn tuk
|
|
||||||
qzo: eji vnr skw twk
|
|
||||||
mml: omx xry tcj
|
|
||||||
krl: uho cps
|
|
||||||
ecj: wsy kxs ube hgj
|
|
||||||
fiq: lur cdj ksy zln
|
|
||||||
rar: tcm yqm
|
|
||||||
cta: vyo yxf
|
|
||||||
din: zoz rjt
|
|
||||||
qon: ihu ncv
|
|
||||||
mje: flt ise
|
|
||||||
tea: xdl cso
|
|
||||||
igj: bys eyc zct rti ndd iru jyg qjz rql flm zxn laf mwq
|
|
||||||
smf: xpx mck zpr cam tea wmb dkp rmk fxc oof lsk ull ito dwv lex
|
|
||||||
ito: pxx qfo uei ukc
|
|
||||||
yba: nnx qlu njz
|
|
||||||
ald: out
|
|
||||||
kfe: zsv jwn luj dse
|
|
||||||
rpe: lsf iph rur
|
|
||||||
ghe: nfi
|
|
||||||
tde: zoz dlc
|
|
||||||
dzo: wce
|
|
||||||
dak: mbu eng awg
|
|
||||||
xpx: ukc pxx
|
|
||||||
fwe: iyz krl
|
|
||||||
nez: pem
|
|
||||||
ciu: xhe vaw yjr wqt iap drz okt ric rmr jbn hrj aie tzd kis
|
|
||||||
vip: qbt ebs ltp ogk
|
|
||||||
akv: qfn xub
|
|
||||||
gze: dhl zlg wce
|
|
||||||
tyc: cul rvh bfv gtq
|
|
||||||
zlg: igj
|
|
||||||
drz: yxf vyo
|
|
||||||
wtn: lrn
|
|
||||||
huj: yxl cps uho
|
|
||||||
opp: rcm nch
|
|
||||||
ahd: gbk
|
|
||||||
zhs: mmq
|
|
||||||
flm: ojr
|
|
||||||
zfm: wck mqz dbx
|
|
||||||
fva: xza dhk zrn
|
|
||||||
wjk: fej xqk vup uzq aum
|
|
||||||
ric: meb lsc
|
|
||||||
jyl: zin tuk
|
|
||||||
rur: dak cqq dyy
|
|
||||||
wqw: ezq vev igj
|
|
||||||
fnp: kdy jne cba
|
|
||||||
agn: hei koc
|
|
||||||
hqj: mzd
|
|
||||||
bys: vnr skw twk eji
|
|
||||||
ymo: jyl nhq
|
|
||||||
rcm: svp
|
|
||||||
mck: xvy
|
|
||||||
vpf: ljr tpz
|
|
||||||
zvk: ovi
|
|
||||||
zms: rky zjm
|
|
||||||
qen: xja dhm
|
|
||||||
njf: rfr wrp bqm
|
|
||||||
jyg: pwi bcs fyl
|
|
||||||
cul: ozq lnm ham
|
|
||||||
pbh: out
|
|
||||||
iqx: ecj vkw hgv xny
|
|
||||||
ahj: ppa jwl
|
|
||||||
uqc: qen lbq
|
|
||||||
bsx: gto
|
|
||||||
rnb: qks zep
|
|
||||||
dac: eje nji
|
|
||||||
oel: hbo ahd quk xlh
|
|
||||||
cqq: mbu eng
|
|
||||||
jsg: zbb ymw
|
|
||||||
wce: vev
|
|
||||||
omx: kdy
|
|
||||||
nji: you nor smf
|
|
||||||
zrp: vvx wqw zqz eqn
|
|
||||||
fkz: you ssk lua nor
|
|
||||||
xdl: reh ptj
|
|
||||||
kxs: hbp cgr
|
|
||||||
lua: blo wmb cam tea cri dwv ull ito uqc lsk ghe lex mhb
|
|
||||||
iru: gtq bfv rvh iys cul
|
|
||||||
sce: cps
|
|
||||||
aer: ezq
|
|
||||||
stm: nfi ehl
|
|
||||||
pnu: fkz
|
|
||||||
xcl: gbi obs kai foc
|
|
||||||
nyv: tui
|
|
||||||
svy: zms
|
|
||||||
jqh: kwr voj
|
|
||||||
dhl: ovi igj vev
|
|
||||||
byq: wce dhl kdr
|
|
||||||
qht: jie iwf
|
|
||||||
cvf: xub
|
|
||||||
eng: out
|
|
||||||
rky: zrn
|
|
||||||
hdh: tzd dvw gul cta aqu sjk wqt vvb yjv qhm qyi ric
|
|
||||||
zsv: alg
|
|
||||||
nhq: zin tuk wtn arh
|
|
||||||
mxy: meb
|
|
||||||
sqa: hmu qcb adp
|
|
||||||
nnx: ssk you nor lua
|
|
||||||
nch: svp iwf
|
|
||||||
fcz: igj
|
|
||||||
nuv: ewy nxd
|
|
||||||
omh: zpe nji
|
|
||||||
ksy: ssk you nor lua smf
|
|
||||||
whv: ilk urf
|
|
||||||
sxa: rar ibn
|
|
||||||
cbk: ayx rky zjm fva
|
|
||||||
gbi: kfr tde
|
|
||||||
yzw: uaw olw
|
|
||||||
zlz: out
|
|
||||||
qbt: jne
|
|
||||||
qfn: tui
|
|
||||||
qxm: ilq gov
|
|
||||||
qww: ptp cck
|
|
||||||
ehl: ikz xnr nby cqg
|
|
||||||
cps: oel ckm cre ofy ghf hsl vza kcr wjk njf wzd tyo laa kaj tee lvd ttt
|
|
||||||
eji: ssx vip
|
|
||||||
wij: nvb alg
|
|
||||||
yqi: qks zep sce
|
|
||||||
hrj: xcl
|
|
||||||
keh: cps yxl uho
|
|
||||||
ugv: yvv zbu fcz
|
|
||||||
tee: bqm
|
|
||||||
jxv: aiv
|
|
||||||
jwl: thf vwr ctb
|
|
||||||
yoo: hez jqh gto
|
|
||||||
jvv: tui fbc
|
|
||||||
vjs: qiz aiv uag
|
|
||||||
alg: wew
|
|
||||||
blo: wwj klt ivw
|
|
||||||
kvt: xdq
|
|
||||||
mrt: out
|
|
||||||
mwq: ydv jyl tkf
|
|
||||||
you: ull uqc xpx mck dkp wmb rmk cam mhb
|
|
||||||
zep: uho
|
|
||||||
hcn: uag
|
|
||||||
kai: kfr fhn din
|
|
||||||
vgh: gbk ngx
|
|
||||||
inu: ube sxx
|
|
||||||
qbz: hei koc
|
|
||||||
xqk: qbz agn oct rtl
|
|
||||||
vev: qjz tyc jyg ymo iru ndd rti akp qzo bys eyc mwq laf wtr flm lmy zxn wdt zfm qhl
|
|
||||||
rvo: uba
|
|
||||||
jql: vev
|
|
||||||
dnq: ott
|
|
||||||
hwr: nch
|
|
||||||
ibn: tcm pbh yqm dht
|
|
||||||
kfr: jql rjt zoz
|
|
||||||
alp: amk xog epo rnb
|
|
||||||
svp: out
|
|
||||||
btx: tui fbc
|
|
||||||
dwv: lbq qen qfq
|
|
||||||
ptp: ict nal jyo ald
|
|
||||||
fky: nor lua ssk you
|
|
||||||
dxo: zsv jwn
|
|
||||||
bfv: lnm ham
|
|
||||||
awx: qiz
|
|
||||||
gwd: ugv
|
|
||||||
ndd: bcs pwi
|
|
||||||
toe: njz
|
|
||||||
lrn: tcj omx
|
|
||||||
jwn: alg nvb
|
|
||||||
zoz: ovi ezq vev
|
|
||||||
qgk: lua ssk
|
|
||||||
fgy: cck
|
|
||||||
qqm: vfk cck
|
|
||||||
zrm: fov
|
|
||||||
dfr: hez rwu jqh
|
|
||||||
dkp: bsx fmv
|
|
||||||
qdd: nzv dno
|
|
||||||
gtq: ozq lnm
|
|
||||||
ozn: vev
|
|
||||||
sxx: cgr
|
|
||||||
dyy: mbu mrt
|
|
||||||
xdb: ydv nmk nhq jyl
|
|
||||||
kdy: zhs yqs tjy svy hgr yfx amn lph xjq vpf ziq nfm ted ykj qjd lyx fqq clj rvw dlg akl qvq znh
|
|
||||||
dlm: gze byq dzo onc
|
|
||||||
kse: ssk smf
|
|
||||||
nul: gwd
|
|
||||||
vio: ecj
|
|
||||||
reh: zjv whv guw
|
|
||||||
gys: ssk you nor smf
|
|
||||||
jyo: out
|
|
||||||
hyd: cps yxl uho
|
|
||||||
wdt: iys
|
|
||||||
fxr: lcm
|
|
||||||
snc: uho aev yxl cps
|
|
||||||
wsy: cgr hbp
|
|
||||||
ydm: uaw olw zlz
|
|
||||||
kcr: kfa ayn vqw
|
|
||||||
kdr: ovi ezq igj
|
|
||||||
oyi: pnw kmw qgk
|
|
||||||
rjt: ezq vev igj ovi
|
|
||||||
yjr: ggc dlm
|
|
||||||
wqt: ahj
|
|
||||||
voj: arj csw wff yzw
|
|
||||||
zpr: xvy nfi ehl
|
|
||||||
cvr: jne kdy
|
|
||||||
ilk: rll loc
|
|
||||||
urn: tcm dht
|
|
||||||
dke: gbi
|
|
||||||
iri: nch
|
|
||||||
loz: dno zsn nzv
|
|
||||||
thf: aer fcz yvv
|
|
||||||
wff: uaw
|
|
||||||
hmu: huj cdn
|
|
||||||
qee: cmq qqt
|
|
||||||
lbq: cws sic xja dhm
|
|
||||||
qqt: czj ocy nzn bcr mfw
|
|
||||||
uql: qfn uba xub
|
|
||||||
nal: out
|
|
||||||
qks: aev uho yxl cps
|
|
||||||
sic: opp fex
|
|
||||||
sjt: tui
|
|
||||||
ott: izh hmu qcb adp
|
|
||||||
nwa: cba jne kdy
|
|
||||||
qcb: huj zrz cdn
|
|
||||||
vvb: dke yes
|
|
||||||
laa: wrp
|
|
||||||
arh: lfm mml lrn hcy
|
|
||||||
wlk: ylg
|
|
||||||
uzq: agn qbz rtl
|
|
||||||
znm: alp spm
|
|
||||||
cws: iri opp
|
|
||||||
ckm: flt tmi
|
|
||||||
fft: gnf fnp
|
|
||||||
ppf: ueq
|
|
||||||
fmv: gto rwu
|
|
||||||
fgu: pwn
|
|
||||||
uvx: tiq xkn kvt rkd kye veb dnq kvc hqj wlk gxb
|
|
||||||
xnr: qqm fgy urz
|
|
||||||
qiz: odt ekp cfm
|
|
||||||
jzn: fbc uvx
|
|
||||||
pwn: tui
|
|
||||||
svr: ciu hdh jmf
|
|
||||||
nor: zpr stm oof est uqc
|
|
||||||
ict: out
|
|
||||||
bcr: tui uvx fbc
|
|
||||||
cdn: yxl uho aev
|
|
||||||
rwd: yxl cps uho aev
|
|
||||||
dsb: qcb
|
|
||||||
gul: dlm
|
|
||||||
adp: huj ogy cdn umq
|
|
||||||
vfk: ald ict nal
|
|
||||||
wzd: xlh vgh quk ahd
|
|
||||||
ayn: dac qgv omh
|
|
||||||
ted: fbr vio gte dqu
|
|
||||||
cri: lbq
|
|
||||||
glg: tui uvx
|
|
||||||
gpd: rur
|
|
||||||
vza: fej uzq vup xqk
|
|
||||||
vwr: aer fcz gwe yvv
|
|
||||||
tui: rkd xkn yob dwd veb kye qon dnq ppf mwh wlk gxb
|
|
||||||
ymw: akv cfz
|
|
||||||
iph: dyy
|
|
||||||
vkw: sxx ube kxs wsy
|
|
||||||
ssx: ebs gqi ltp
|
|
||||||
qvq: egd
|
|
||||||
yea: ptp cck
|
|
||||||
lfm: xvi
|
|
||||||
cbe: kse nnx njz qlu gys
|
|
||||||
paa: kdy
|
|
||||||
gte: ecj hgv
|
|
||||||
ogk: cba jne kdy
|
|
||||||
qgv: zpe eje nji
|
|
||||||
qyi: vjs jru hcn
|
|
||||||
lsk: uei
|
|
||||||
ziq: sca mmq ine fgu
|
|
||||||
vup: qbz oct rtl
|
|
||||||
hsl: rfr
|
|
||||||
wym: snc
|
|
||||||
ncv: fwe bsr qxm
|
|
||||||
dno: cvr car paa nwa
|
|
||||||
hgy: zjv
|
|
||||||
zct: rvh cul iys
|
|
||||||
frm: loc
|
|
||||||
mgt: cdj lur zln
|
|
||||||
mmq: glg
|
|
||||||
jej: uql cvf akv
|
|
||||||
ekk: fjr qdd xhp loz
|
|
||||||
mbu: out
|
|
||||||
zwf: ilq gov iyz
|
|
||||||
urf: rll wqu enu
|
|
||||||
epo: sce qks zep
|
|
||||||
xhp: eit
|
|
||||||
mcs: mcu rxj qif
|
|
||||||
zpe: smf lua ssk
|
|
||||||
uaw: out
|
|
||||||
vuf: zbb jej
|
|
||||||
lcm: fbc
|
|
||||||
oap: igj ezq
|
|
||||||
yqm: out
|
|
||||||
xja: iri fex hwr
|
|
||||||
cso: ptj
|
|
||||||
hbo: gbk ngx
|
|
||||||
kxy: dno eit
|
|
||||||
kvc: sun yzl
|
|
||||||
ezq: ndd xdb eyc zct bys qjz ymo rql zfm qhl mwq ekk zxn lmy flm wtr
|
|
||||||
uoa: fnp wbw
|
|
||||||
zjv: frm
|
|
||||||
hez: kwr voj mjc
|
|
||||||
unc: fnp usx
|
|
||||||
dhm: hwr
|
|
||||||
iyz: uho
|
|
||||||
wtr: eji twk
|
|
||||||
cfz: xub
|
|
||||||
xfb: btx jzn lcm odn
|
|
||||||
aie: yxf vyo
|
|
||||||
jmf: zry yjv mxy ehz qyi ric okt aie hrj rmr wqt vaw yjr vvb drz aqu iap
|
|
||||||
dqu: hgv inu
|
|
||||||
wbw: jne
|
|
||||||
qyy: nnx qlu
|
|
||||||
ggc: dzo xya byq gze
|
|
||||||
xdo: rur rng iph lsf
|
|
||||||
wmb: ike yoo
|
|
||||||
est: dfr fmv bsx
|
|
||||||
dgm: wbw usx fnp gnf
|
|
||||||
jie: out
|
|
||||||
qjd: pem vuf
|
|
||||||
amk: zep
|
|
||||||
rwu: mjc
|
|
||||||
rsc: umq cdn zrz huj
|
|
||||||
akp: xhp kxy fjr loz
|
|
||||||
sca: vcu ejo nyv pwn
|
|
||||||
olw: out
|
|
||||||
wun: dzo gze byq xya
|
|
||||||
sun: hyd hqp
|
|
||||||
fjr: eit dno nzv
|
|
||||||
nhm: hcy lrn pyf
|
|
||||||
tyo: xlh vgh hbo
|
|
||||||
nfm: yke xfb fxr
|
|
||||||
pwi: peq
|
|
||||||
pem: jej ymw zbb
|
|
||||||
xza: jhm jvv sjt
|
|
||||||
akl: egd cbk
|
|
||||||
xhe: meb
|
|
||||||
lur: ssk you smf
|
|
||||||
cck: jyo
|
|
||||||
bqm: cbe toe yba
|
|
||||||
kaj: vup xqk uzq
|
|
||||||
uba: tui uvx
|
|
||||||
uho: njf wjk rwa kcr vza cre ofy hsl ghf oel ckm mje ttt kaj tee lvd laa tyo
|
|
||||||
tuk: mml
|
|
||||||
ilq: aev
|
|
||||||
rsh: nxd sxa ewy
|
|
||||||
gwv: iph lsf rur
|
|
||||||
mub: luj dse jwn wij zsv
|
|
||||||
mod: lcm jzn btx qgr
|
|
||||||
oku: yxl cps uho
|
|
||||||
xny: hgj
|
|
||||||
zin: lrn hcy
|
|
||||||
hgr: xfb
|
|
||||||
lex: krb nfy ves quu
|
|
||||||
pnw: ssk you lua nor
|
|
||||||
egd: fva
|
|
||||||
ogy: aev
|
|
||||||
skw: tdu ssx vip
|
|
||||||
zjm: zrn xza
|
|
||||||
wew: uho aev yxl cps
|
|
||||||
dhp: ott ewm sqa
|
|
||||||
nvb: oku wew
|
|
||||||
xdq: qxm xyh fwe zwf
|
|
||||||
kmw: lua smf nor you
|
|
||||||
dvw: dlm
|
|
||||||
zrz: yxl aev
|
|
||||||
hei: smf ssk
|
|
||||||
klt: reh
|
|
||||||
usv: hwr iri
|
|
||||||
czj: tui uvx
|
|
||||||
quu: rpe
|
|
||||||
luj: nvb
|
|
||||||
oof: nfy krb quu
|
|
||||||
yxf: xit zqz wqw vvx
|
|
||||||
ehz: zde nul
|
|
||||||
yxl: ttt wjk tee lvd laa vza hsl ghf ofy oel wzd
|
|
||||||
mdq: nor lua smf
|
|
||||||
cre: wrp
|
|
||||||
fqq: sca rkh fgu
|
|
||||||
asm: qgk kmw pnw fkz
|
|
||||||
tjy: dqu gte fbr vio
|
|
||||||
fhn: zoz jql dlc
|
|
||||||
mwh: xdq ncv zuv
|
|
||||||
zxn: tkf
|
|
||||||
lvd: kfa vqw ayn
|
|
||||||
ikz: urz fgy qqm
|
|
||||||
hvz: aev cps yxl
|
|
||||||
ayd: kse
|
|
||||||
rvh: ham lnm
|
|
||||||
eqn: igj
|
|
||||||
ppy: zpe
|
|
||||||
nfy: xdo ubi rpe
|
|
||||||
fyl: kqf kxo
|
|
||||||
ltp: cba
|
|
||||||
ahg: fft
|
|
||||||
ham: kdy jne cba
|
|
||||||
awg: out
|
|
||||||
spm: amk rnb xog yqi
|
|
||||||
aum: qbz agn
|
|
||||||
iwf: out
|
|
||||||
lbv: jej ymw
|
|
||||||
nxd: ibn rar lwq urn
|
|
||||||
veb: zuv
|
|
||||||
rmr: mcs lsc meb
|
|
||||||
qfq: usv cws sic dhm
|
|
||||||
vcu: uvx fbc
|
|
||||||
rtl: hei fky koc
|
|
||||||
nzd: ctb
|
|
||||||
kxo: jne kdy cba
|
|
||||||
dnn: gwe
|
|
||||||
rwa: ise flt tmi
|
|
||||||
rmk: ehl nfi
|
|
||||||
vyo: xit
|
|
||||||
ocy: tui
|
|
||||||
loc: out
|
|
||||||
njz: nor
|
|
||||||
yjv: wun dlm ggc
|
|
||||||
ivw: reh ptj
|
|
||||||
fov: otv
|
|
||||||
kye: znm inl
|
|
||||||
aev: mje rwa tee kaj lvd ghf hsl tyo oel ckm
|
|
||||||
aqu: jxv awx vjs
|
|
||||||
wwj: hgy reh
|
|
||||||
gnf: cba kdy jne
|
|
||||||
tdu: ltp ogk qbt ebs
|
|
||||||
mqz: unc fft dgm uoa
|
|
||||||
hcy: tcj xvi xry omx cvi
|
|
||||||
pyf: omx cvi xvi
|
|
||||||
dlc: ovi igj ezq
|
|
||||||
fbc: yob tiq dwd kpa lov dhp kvc qon tdd dnq mwh wlk hqj
|
|
||||||
dhk: sjt jvv jhm
|
|
||||||
otv: bcr nzn mfw czj ocy
|
|
||||||
lsc: qif mcu
|
|
||||||
usx: jne kdy
|
|
||||||
mcu: ezq vev igj ovi
|
|
||||||
rfr: toe cbe yba ayd
|
|
||||||
zln: ssk smf nor
|
|
||||||
ylg: zsv jwn dse luj
|
|
||||||
bcs: kxo peq kqf
|
|
||||||
ptj: whv guw zjv
|
|
||||||
krb: xdo gwv gpd
|
|
||||||
zbb: rvo cvf cfz akv
|
|
||||||
csw: zlz olw uaw
|
|
||||||
ssk: mhb lex lsk uqc ghe oof ull cam tea cri fxc wmb dkp xpx mck stm zpr blo
|
|
||||||
lov: ipk
|
|
||||||
lsf: cqq dyy
|
|
||||||
yfx: pem jsg lbv
|
|
||||||
tpz: qee fov
|
|
||||||
twk: ssx tdu vip
|
|
||||||
hgj: hbp hgg
|
|
||||||
ayx: xza
|
|
||||||
tiq: yzl sun
|
|
||||||
dpm: lur mdq
|
|
||||||
cvi: kdy cba
|
|
||||||
ppa: ugv thf dnn ctb
|
|
||||||
jbn: zde ahj
|
|
||||||
tkf: nhm tuk wtn zin
|
|
||||||
gqi: cba
|
|
||||||
dse: wym
|
|
||||||
nbp: ewy sxa nxd
|
|
||||||
tcm: out
|
|
||||||
cfm: eys oap
|
|
||||||
xub: uvx fbc
|
|
||||||
fxc: qfq qen
|
|
||||||
dlg: vio fbr gte iqx
|
|
||||||
peq: jne kdy
|
|
||||||
zde: nzd gwd ppa
|
|
||||||
guw: frm ilk olr
|
|
||||||
uei: rsh pym nuv
|
|
||||||
oct: hei fky
|
|
||||||
clj: yke
|
|
||||||
yzm: mfw
|
|
||||||
fej: rtl oct
|
|
||||||
xee: mgt
|
|
||||||
ueq: spm vzs alp
|
|
||||||
ljr: fov tcl
|
|
||||||
eit: paa
|
|
||||||
rkd: dxo kfe mub
|
|
||||||
hgv: wsy kxs ube hgj
|
|
||||||
odt: oap zvk eys ozn
|
|
||||||
rti: qdd xhp fjr
|
|
||||||
wqu: out
|
|
||||||
lph: ine
|
|
||||||
kpa: dxo
|
|
||||||
rng: dak
|
|
||||||
upd: qee tcl
|
|
||||||
sjk: zrp vyo
|
|
||||||
tdd: dsb ewm sqa
|
|
||||||
ykj: pem vuf lbv
|
|
||||||
tmi: asm pnu
|
|
||||||
nby: yea
|
|
||||||
xyh: iyz krl
|
|
||||||
flt: pnu oyi
|
|
||||||
lyx: zrm upd ljr
|
|
||||||
pxx: nbp
|
|
||||||
cgr: uvx fbc
|
|
||||||
znh: ljr
|
|
||||||
uag: ekp cfm
|
|
||||||
qif: ovi igj vev
|
|
||||||
rxj: igj ezq
|
|
||||||
kis: wun
|
|
||||||
bsr: iyz gov
|
|
||||||
zqz: ezq vev
|
|
||||||
joo: fhn
|
|
||||||
ejo: uvx tui
|
|
||||||
ewm: rsc
|
|
||||||
fex: qht
|
|
||||||
ves: gpd gwv xdo ubi rpe
|
|
||||||
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
||||||
use crate::utils;
|
|
||||||
use itertools::Itertools;
|
|
||||||
use petgraph::unionfind::UnionFind;
|
|
||||||
use std::collections::{BinaryHeap, HashMap};
|
|
||||||
|
|
||||||
const COORD_SPACE: usize = 1000;
|
|
||||||
const MAX_PAIRS: usize = 1000;
|
|
||||||
|
|
||||||
pub fn answer(text: String) -> (usize, u32) {
|
|
||||||
// Get coordinates
|
|
||||||
let coords: [Coord; COORD_SPACE] = text.trim()
|
|
||||||
.split_whitespace()
|
|
||||||
.filter_map(Coord::from)
|
|
||||||
.collect::<Vec<Coord>>()
|
|
||||||
.try_into()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
// Find all equivalence classes
|
|
||||||
let pairs = PairQueue::from(&coords);
|
|
||||||
let mut uf = UnionFind::new(COORD_SPACE);
|
|
||||||
|
|
||||||
for ( c1, c2 ) in pairs.pairs.iter().rev().map(|cp| (cp.c1, cp.c2)) {
|
|
||||||
// println!("Coord {c1} ({:?}) and coord {c2} ({:?}) are close together!", coords[c1], coords[c2]);
|
|
||||||
uf.union(c1, c2);
|
|
||||||
}
|
|
||||||
// println!("{:?}", uf);
|
|
||||||
|
|
||||||
// Collect sizes of equivalence classes
|
|
||||||
let mut groups: HashMap<usize, usize> = HashMap::new();
|
|
||||||
for x in uf.into_labeling().iter() {
|
|
||||||
*groups.entry(*x).or_insert(0) += 1;
|
|
||||||
}
|
|
||||||
// println!("{:?}", groups);
|
|
||||||
|
|
||||||
let mut equiv_class_sizes : Vec<isize> = groups
|
|
||||||
.values()
|
|
||||||
.map(|v| -1 * (*v as isize))
|
|
||||||
.collect();
|
|
||||||
equiv_class_sizes.sort_unstable();
|
|
||||||
|
|
||||||
// println!("{:?}", equiv_class_sizes);
|
|
||||||
|
|
||||||
( (equiv_class_sizes[0] * equiv_class_sizes[1] * equiv_class_sizes[2]).abs() as usize
|
|
||||||
// 87048 too high
|
|
||||||
, 0
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
struct Coord { x: u64, y: u64, z: u64, }
|
|
||||||
impl Coord {
|
|
||||||
fn dist_euclid(&self, other: &Coord) -> i64 {
|
|
||||||
( self.x.abs_diff(other.x).pow(2)
|
|
||||||
+ self.y.abs_diff(other.y).pow(2)
|
|
||||||
+ self.z.abs_diff(other.z).pow(2)
|
|
||||||
) as i64
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from(s: &str) -> Option<Coord> {
|
|
||||||
let ( x, yz ) = s.split_once(",")?;
|
|
||||||
let ( y, z ) = yz.split_once(",")?;
|
|
||||||
|
|
||||||
Some(Coord {
|
|
||||||
x: utils::str_to_u64(x)?,
|
|
||||||
y: utils::str_to_u64(y)?,
|
|
||||||
z: utils::str_to_u64(z)?,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
|
|
||||||
struct CoordPair {
|
|
||||||
distance: i64,
|
|
||||||
c1 : usize,
|
|
||||||
c2 : usize,
|
|
||||||
}
|
|
||||||
|
|
||||||
struct PairQueue {
|
|
||||||
max_distance: i64,
|
|
||||||
pairs: BinaryHeap<CoordPair>,
|
|
||||||
}
|
|
||||||
impl PairQueue {
|
|
||||||
fn from(coords: &[Coord; COORD_SPACE]) -> PairQueue {
|
|
||||||
let pairs = coords
|
|
||||||
.iter()
|
|
||||||
.enumerate()
|
|
||||||
.combinations(2);
|
|
||||||
let mut queue = PairQueue::new();
|
|
||||||
|
|
||||||
for pair in pairs {
|
|
||||||
let (i, c1) = pair[0];
|
|
||||||
let (j, c2) = pair[1];
|
|
||||||
|
|
||||||
queue.insert(
|
|
||||||
CoordPair { distance: c1.dist_euclid(c2), c1: i, c2: j }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
queue
|
|
||||||
}
|
|
||||||
|
|
||||||
fn insert(&mut self, pair: CoordPair) {
|
|
||||||
// println!("At max: {} (size {}) | Distance = {} | Max distance = {} (too large: {})", self.pairs.len() >= MAX_PAIRS, self.pairs.len(), pair.distance, self.max_distance, pair.distance >= self.max_distance);
|
|
||||||
if self.pairs.len() >= MAX_PAIRS && pair.distance >= self.max_distance {
|
|
||||||
// println!("STOPPING!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.max_distance = self.pairs
|
|
||||||
.peek()
|
|
||||||
.map(|cp| cp.distance)
|
|
||||||
.unwrap_or(pair.distance)
|
|
||||||
.max(pair.distance);
|
|
||||||
// println!("Going on! Self distance = {}, pair distance = {}", self.max_distance, pair.distance);
|
|
||||||
|
|
||||||
self.pairs.push(pair);
|
|
||||||
if self.pairs.len() > MAX_PAIRS {
|
|
||||||
self.pairs.pop();
|
|
||||||
// println!("Popping {:?}", self.pairs.pop());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn new() -> PairQueue {
|
|
||||||
PairQueue {
|
|
||||||
max_distance: 0,
|
|
||||||
pairs: BinaryHeap::with_capacity(COORD_SPACE + 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
use itertools::Itertools;
|
|
||||||
|
|
||||||
use crate::utils;
|
|
||||||
|
|
||||||
pub fn answer(text: String) -> (u64, u64) {
|
|
||||||
let mut coords: Vec<Coord> = text
|
|
||||||
.trim()
|
|
||||||
.split_whitespace()
|
|
||||||
.filter_map(Coord::from)
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
if let Some((idx, _)) = coords.iter()
|
|
||||||
.enumerate()
|
|
||||||
.min_by_key(|(_, c)| c.x)
|
|
||||||
{
|
|
||||||
coords.rotate_left(idx);
|
|
||||||
}
|
|
||||||
|
|
||||||
( coords.iter()
|
|
||||||
.combinations(2)
|
|
||||||
.map(|items| items[0].square_to(items[1]))
|
|
||||||
.max()
|
|
||||||
.unwrap_or(0)
|
|
||||||
, 0
|
|
||||||
// , coords.iter()
|
|
||||||
// .combinations(2)
|
|
||||||
// .map(|items| ( items[0], items[1], items[0].square_to(items[1])))
|
|
||||||
// .filter(|(c1, c2, _)| !overlaps_with(&coords, *c1, *c2))
|
|
||||||
// .map(|(_, _, size)| size)
|
|
||||||
// .max()
|
|
||||||
// .unwrap_or(0)
|
|
||||||
// 4638696212 too high
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Coord { x: u64, y: u64 }
|
|
||||||
|
|
||||||
impl Coord {
|
|
||||||
fn from(s: &str) -> Option<Coord> {
|
|
||||||
let (x, y) = s.split_once(",")?;
|
|
||||||
|
|
||||||
Some(Coord { x: utils::str_to_u64(x)?, y: utils::str_to_u64(y)? })
|
|
||||||
}
|
|
||||||
|
|
||||||
fn square_to(&self, other: &Coord) -> u64 {
|
|
||||||
(self.x.abs_diff(other.x) + 1) * (self.y.abs_diff(other.y) + 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// enum Direction { NegX, NegY, PosX, PosY }
|
|
||||||
|
|
||||||
// fn overlaps_with(coords: &Vec<Coord>, c1: &Coord, c2: &Coord) -> bool {
|
|
||||||
// let head: &Coord = coords.first().unwrap();
|
|
||||||
|
|
||||||
// let mut a: &Coord;
|
|
||||||
// let mut b: &Coord = head;
|
|
||||||
// let mut d: Direction = Direction::PosY;
|
|
||||||
|
|
||||||
// let (x1, x2) = (c1.x.min(c2.x), c1.x.max(c2.x));
|
|
||||||
// let (y1, y2) = (c1.y.min(c2.y), c1.y.max(c2.y));
|
|
||||||
|
|
||||||
// for c in coords.iter().chain(vec![head].into_iter()) {
|
|
||||||
// // d = match d {
|
|
||||||
// // Direction::NegX => {
|
|
||||||
// // // ^
|
|
||||||
// // // |
|
|
||||||
// // // b-----c
|
|
||||||
// // // |
|
|
||||||
// // // <--|
|
|
||||||
// // // |
|
|
||||||
// // // a
|
|
||||||
|
|
||||||
// // // a
|
|
||||||
// // // |
|
|
||||||
// // // <--|
|
|
||||||
// // // |
|
|
||||||
// // // b-----c
|
|
||||||
// // // |
|
|
||||||
// // // v
|
|
||||||
|
|
||||||
// // // c-----b
|
|
||||||
// // // | |
|
|
||||||
// // // v |
|
|
||||||
// // // <-|
|
|
||||||
// // // |
|
|
||||||
// // // a
|
|
||||||
|
|
||||||
// // // a
|
|
||||||
// // // |
|
|
||||||
// // // <-|
|
|
||||||
// // // ^ |
|
|
||||||
// // // | |
|
|
||||||
// // // c-----b
|
|
||||||
// // },
|
|
||||||
// // };
|
|
||||||
// (a, b) = (b, c);
|
|
||||||
|
|
||||||
// if x1 < a.x && a.x < x2 && y1 < a.y && a.y < y2 {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
// if x1 < b.x && b.x < x2 && y1 < b.y && b.y < y2 {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Currently couldn't think of any other ways
|
|
||||||
// // that the square could overlap with the edge
|
|
||||||
// false
|
|
||||||
// }
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
use crate::utils;
|
|
||||||
use super::test_machine::TestMachine;
|
|
||||||
use itertools::Itertools;
|
|
||||||
|
|
||||||
pub struct Machine<'a> {
|
|
||||||
exp_result: &'a str,
|
|
||||||
buttons: Vec<Vec<u8>>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Machine<'_> {
|
|
||||||
pub fn from<'a>(text: &'a str) -> Option<Machine<'a>> {
|
|
||||||
let mut items = text.split_whitespace();
|
|
||||||
let ( res, _joltages ) = (items.next()?, items.next_back()?);
|
|
||||||
|
|
||||||
// Parse expected result string
|
|
||||||
let mut c = res.chars();
|
|
||||||
match ( c.next(), c.next_back() ) {
|
|
||||||
(Some('['), Some(']')) => {},
|
|
||||||
_ => { return None; },
|
|
||||||
}
|
|
||||||
|
|
||||||
Some(Machine {
|
|
||||||
exp_result: c.as_str(),
|
|
||||||
buttons: items.map(str_to_btn).collect(),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn find_least_buttons(&self) -> u8 {
|
|
||||||
let mut pushes: u8 = 1;
|
|
||||||
|
|
||||||
loop {
|
|
||||||
if self.buttons
|
|
||||||
.iter()
|
|
||||||
.combinations(usize::from(pushes))
|
|
||||||
.any(|config| correct_config(config, self.exp_result))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
pushes += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
pushes
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn correct_config(config: Vec<&Vec<u8>>, exp_result: &str) -> bool {
|
|
||||||
let mut t = TestMachine::new();
|
|
||||||
t.push_buttons(config);
|
|
||||||
t.verify(exp_result)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn str_to_btn(text: &str) -> Vec<u8> {
|
|
||||||
text.chars().filter_map(utils::char_to_u8).collect()
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
mod test_machine;
|
|
||||||
mod machine;
|
|
||||||
|
|
||||||
use machine::Machine;
|
|
||||||
|
|
||||||
pub fn answer(text: String) -> ( u32, u32 ) {
|
|
||||||
let machines: Vec<Machine> = text
|
|
||||||
.trim()
|
|
||||||
.split("\n")
|
|
||||||
.filter_map(Machine::from)
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
( machines
|
|
||||||
.iter()
|
|
||||||
.map(|m| m.find_least_buttons())
|
|
||||||
.map(u32::from)
|
|
||||||
.sum()
|
|
||||||
, 0
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
pub struct TestMachine {
|
|
||||||
buttons: u16,
|
|
||||||
}
|
|
||||||
|
|
||||||
struct TestMachineIterator {
|
|
||||||
buttons: u16,
|
|
||||||
i: u8,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TestMachine {
|
|
||||||
fn iter(&self) -> TestMachineIterator {
|
|
||||||
TestMachineIterator { buttons: self.buttons, i: 0 }
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn new() -> TestMachine {
|
|
||||||
TestMachine { buttons: 0 }
|
|
||||||
}
|
|
||||||
|
|
||||||
fn push_button(&mut self, btns: &Vec<u8>) {
|
|
||||||
self.buttons = btns
|
|
||||||
.iter()
|
|
||||||
.fold(
|
|
||||||
self.buttons,
|
|
||||||
|tot, &btn| 2u16.pow(u32::from(btn)) ^ tot
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn push_buttons(&mut self, btns: Vec<&Vec<u8>>) {
|
|
||||||
for btn in btns {
|
|
||||||
self.push_button(btn);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn verify(&self, text: &str) -> bool {
|
|
||||||
text.chars()
|
|
||||||
.zip(self.iter())
|
|
||||||
.all(|(c, turned_on)| (c == '#') == turned_on)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Iterator for TestMachineIterator {
|
|
||||||
type Item = bool;
|
|
||||||
|
|
||||||
fn next(&mut self) -> Option<Self::Item> {
|
|
||||||
let offset = self.i;
|
|
||||||
|
|
||||||
if offset >= 16 {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
self.i += 1;
|
|
||||||
|
|
||||||
Some(((self.buttons >> offset) & 1) == 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
use std::collections::HashMap;
|
|
||||||
|
|
||||||
enum PathSize { Looping, Fixed(u64) }
|
|
||||||
|
|
||||||
pub fn answer(text: String) -> ( u64, u64 ) {
|
|
||||||
let paths = str_to_hashmap(&text);
|
|
||||||
|
|
||||||
// println!("{:?}", count_paths(&paths, "svr", "fft"));
|
|
||||||
// println!("{:?}", count_paths(&paths, "fft", "dac"));
|
|
||||||
// println!("{:?}", count_paths(&paths, "dac", "out"));
|
|
||||||
// println!("{:?}", count_paths(&paths, "svr", "dac"));
|
|
||||||
// println!("{:?}", count_paths(&paths, "dac", "fft"));
|
|
||||||
// println!("{:?}", count_paths(&paths, "fft", "out"));
|
|
||||||
|
|
||||||
( count_paths(&paths, "you", "out").unwrap_or(0)
|
|
||||||
// 4294967295 too high
|
|
||||||
, match count_paths(&paths, "fft", "dac") {
|
|
||||||
Some(0) =>
|
|
||||||
count_paths(&paths, "svr", "dac").unwrap_or(0) *
|
|
||||||
count_paths(&paths, "dac", "fft").unwrap_or(0) *
|
|
||||||
count_paths(&paths, "fft", "out").unwrap_or(0),
|
|
||||||
Some(n) =>
|
|
||||||
count_paths(&paths, "svr", "fft").unwrap_or(0) *
|
|
||||||
n *
|
|
||||||
count_paths(&paths, "dac", "out").unwrap_or(0),
|
|
||||||
None => u64::MAX,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn count_paths(paths: &HashMap<&str, Vec<&str>>, from: &str, to: &str) -> Option<u64> {
|
|
||||||
let mut graph = HashMap::new();
|
|
||||||
graph.insert(to, PathSize::Fixed(1));
|
|
||||||
|
|
||||||
match dfs_find_path_size(&mut graph, paths, from) {
|
|
||||||
PathSize::Fixed(n) => Some(n),
|
|
||||||
PathSize::Looping => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn dfs_find_path_size<'a>(
|
|
||||||
graph: &mut HashMap<&'a str, PathSize>,
|
|
||||||
input: &HashMap<&'a str, Vec<&'a str>>,
|
|
||||||
x: &'a str
|
|
||||||
) -> PathSize {
|
|
||||||
match graph.get(x) {
|
|
||||||
Some(PathSize::Fixed(n)) => {
|
|
||||||
PathSize::Fixed(*n)
|
|
||||||
},
|
|
||||||
Some(PathSize::Looping) => {
|
|
||||||
PathSize::Looping
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
graph.insert(x, PathSize::Looping);
|
|
||||||
|
|
||||||
let mut total: u64 = 0;
|
|
||||||
|
|
||||||
for &next_x in input.get(x).unwrap_or(&Vec::new()).iter() {
|
|
||||||
match dfs_find_path_size(graph, input, next_x) {
|
|
||||||
PathSize::Fixed(n) => {
|
|
||||||
total += n;
|
|
||||||
}
|
|
||||||
PathSize::Looping => {
|
|
||||||
return PathSize::Looping;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
graph.insert(x, PathSize::Fixed(total));
|
|
||||||
PathSize::Fixed(total)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn str_to_hashmap(text: &str) -> HashMap<&str, Vec<&str>> {
|
|
||||||
text.trim()
|
|
||||||
.split("\n")
|
|
||||||
.filter_map(line_to_kv_pair)
|
|
||||||
.collect()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn line_to_kv_pair(line: &str) -> Option<( &str, Vec<&str> )> {
|
|
||||||
let (key, value) = line.split_once(": ")?;
|
|
||||||
|
|
||||||
Some(( key, value.split_whitespace().collect() ))
|
|
||||||
}
|
|
||||||
|
|
@ -5,10 +5,10 @@ mod day_04;
|
||||||
mod day_05;
|
mod day_05;
|
||||||
mod day_06;
|
mod day_06;
|
||||||
mod day_07;
|
mod day_07;
|
||||||
mod day_08;
|
// mod day_08;
|
||||||
mod day_09;
|
// mod day_09;
|
||||||
mod day_10;
|
// mod day_10;
|
||||||
mod day_11;
|
// mod day_11;
|
||||||
// mod day_12;
|
// mod day_12;
|
||||||
mod utils;
|
mod utils;
|
||||||
|
|
||||||
|
|
@ -69,30 +69,30 @@ pub fn day_07() -> DailyOutput {
|
||||||
( p1 as u128, p2 as u128, d )
|
( p1 as u128, p2 as u128, d )
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn day_08() -> DailyOutput {
|
// pub fn day_08() -> DailyOutput {
|
||||||
let s : String = read_from_file("inputs/08.txt");
|
// let s : String = read_from_file("inputs/08.txt");
|
||||||
let (p1, p2, d) = diagnostics::benchmark(s, day_08::answer);
|
// let (p1, p2, d) = diagnostics::benchmark(s, day_08::answer);
|
||||||
|
|
||||||
( p1 as u128, p2 as u128, d )
|
// ( p1 as u128, p2 as u128, d )
|
||||||
}
|
// }
|
||||||
|
|
||||||
pub fn day_09() -> DailyOutput {
|
// pub fn day_09() -> DailyOutput {
|
||||||
let s : String = read_from_file("inputs/09.txt");
|
// let s : String = read_from_file("inputs/09.txt");
|
||||||
let (p1, p2, d) = diagnostics::benchmark(s, day_09::answer);
|
// let (p1, p2, d) = diagnostics::benchmark(s, day_09::answer);
|
||||||
|
|
||||||
( p1 as u128, p2 as u128, d )
|
// ( p1 as u128, p2 as u128, d )
|
||||||
}
|
// }
|
||||||
|
|
||||||
pub fn day_10() -> DailyOutput {
|
// pub fn day_10() -> DailyOutput {
|
||||||
let s : String = read_from_file("inputs/10.txt");
|
// let s : String = read_from_file("inputs/10.txt");
|
||||||
let (p1, p2, d) = diagnostics::benchmark(s, day_10::answer);
|
// let (p1, p2, d) = diagnostics::benchmark(s, day_10::answer);
|
||||||
|
|
||||||
( p1 as u128, p2 as u128, d )
|
// ( p1 as u128, p2 as u128, d )
|
||||||
}
|
// }
|
||||||
|
|
||||||
pub fn day_11() -> DailyOutput {
|
// pub fn day_11() -> DailyOutput {
|
||||||
let s : String = read_from_file("inputs/11.txt");
|
// let s : String = read_from_file("inputs/11.txt");
|
||||||
let (p1, p2, d) = diagnostics::benchmark(s, day_11::answer);
|
// let (p1, p2, d) = diagnostics::benchmark(s, day_11::answer);
|
||||||
|
|
||||||
( p1 as u128, p2 as u128, d )
|
// ( p1 as u128, p2 as u128, d )
|
||||||
}
|
// }
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,10 @@ fn main() {
|
||||||
Some(5) => run_day(aoc2025::day_05),
|
Some(5) => run_day(aoc2025::day_05),
|
||||||
Some(6) => run_day(aoc2025::day_06),
|
Some(6) => run_day(aoc2025::day_06),
|
||||||
Some(7) => run_day(aoc2025::day_07),
|
Some(7) => run_day(aoc2025::day_07),
|
||||||
Some(8) => run_day(aoc2025::day_08),
|
// Some(8) => run_day(aoc2025::day_08),
|
||||||
Some(9) => run_day(aoc2025::day_09),
|
// Some(9) => run_day(aoc2025::day_09),
|
||||||
Some(10) => run_day(aoc2025::day_10),
|
// Some(10) => run_day(aoc2025::day_10),
|
||||||
Some(11) => run_day(aoc2025::day_11),
|
// Some(11) => run_day(aoc2025::day_11),
|
||||||
// Some(12) => run_day(aoc2025::day_12),
|
// Some(12) => run_day(aoc2025::day_12),
|
||||||
Some(_) => run_all_days(),
|
Some(_) => run_all_days(),
|
||||||
None => run_all_days(),
|
None => run_all_days(),
|
||||||
|
|
@ -35,10 +35,10 @@ fn run_all_days() {
|
||||||
aoc.insert(5, aoc2025::day_05());
|
aoc.insert(5, aoc2025::day_05());
|
||||||
aoc.insert(6, aoc2025::day_06());
|
aoc.insert(6, aoc2025::day_06());
|
||||||
aoc.insert(7, aoc2025::day_07());
|
aoc.insert(7, aoc2025::day_07());
|
||||||
aoc.insert(8, aoc2025::day_08());
|
// aoc.insert(8, aoc2025::day_08());
|
||||||
aoc.insert(9, aoc2025::day_09());
|
// aoc.insert(9, aoc2025::day_09());
|
||||||
aoc.insert(10, aoc2025::day_10());
|
// aoc.insert(10, aoc2025::day_10());
|
||||||
aoc.insert(11, aoc2025::day_11());
|
// aoc.insert(11, aoc2025::day_11());
|
||||||
// aoc.insert(12, aoc2025::day_12());
|
// aoc.insert(12, aoc2025::day_12());
|
||||||
|
|
||||||
aoc.show_diagnostics();
|
aoc.show_diagnostics();
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,6 @@ pub fn str_to_i16(s : &str) -> Option<i16> {
|
||||||
s.trim().to_string().parse::<i16>().ok()
|
s.trim().to_string().parse::<i16>().ok()
|
||||||
}
|
}
|
||||||
|
|
||||||
// pub fn str_to_i64(s : &str) -> Option<i64> {
|
|
||||||
// s.trim().to_string().parse::<i64>().ok()
|
|
||||||
// }
|
|
||||||
|
|
||||||
// pub fn str_to_i32(s : &str) -> Option<i32> {
|
// pub fn str_to_i32(s : &str) -> Option<i32> {
|
||||||
// s.trim().to_string().parse::<i32>().ok()
|
// s.trim().to_string().parse::<i32>().ok()
|
||||||
// }
|
// }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue