day 7
This commit is contained in:
parent
e7bd950ce3
commit
6896c62cc8
11 changed files with 709 additions and 0 deletions
601
day_4/input3.txt
Normal file
601
day_4/input3.txt
Normal file
|
@ -0,0 +1,601 @@
|
||||||
|
42,32,13,22,91,2,88,85,53,87,37,33,76,98,89,19,69,9,62,21,38,49,54,81,0,26,79,36,57,18,4,40,31,80,24,64,77,97,70,6,73,23,20,47,45,51,74,25,95,96,58,92,94,11,39,63,65,99,48,83,29,34,44,75,55,17,14,56,8,82,59,52,46,90,5,41,60,67,16,1,15,61,71,66,72,30,28,3,43,27,78,10,86,7,50,35,84,12,93,68
|
||||||
|
|
||||||
|
90 8 2 34 41
|
||||||
|
11 67 74 71 62
|
||||||
|
47 42 44 1 17
|
||||||
|
21 55 12 91 6
|
||||||
|
60 69 75 92 56
|
||||||
|
|
||||||
|
49 29 60 45 31
|
||||||
|
94 51 73 33 67
|
||||||
|
21 92 53 95 96
|
||||||
|
2 55 52 8 87
|
||||||
|
4 36 76 83 42
|
||||||
|
|
||||||
|
23 66 50 84 58
|
||||||
|
62 98 81 76 57
|
||||||
|
24 2 56 79 6
|
||||||
|
55 0 16 64 38
|
||||||
|
12 67 5 97 60
|
||||||
|
|
||||||
|
46 64 5 39 62
|
||||||
|
16 82 13 77 52
|
||||||
|
18 26 44 0 61
|
||||||
|
25 7 43 42 50
|
||||||
|
11 85 30 28 76
|
||||||
|
|
||||||
|
51 28 70 65 78
|
||||||
|
62 88 30 36 96
|
||||||
|
80 87 4 1 24
|
||||||
|
63 22 41 79 34
|
||||||
|
18 15 47 26 67
|
||||||
|
|
||||||
|
48 68 92 67 36
|
||||||
|
54 50 71 98 21
|
||||||
|
20 91 70 78 76
|
||||||
|
87 97 44 3 93
|
||||||
|
84 12 39 96 57
|
||||||
|
|
||||||
|
86 12 38 44 1
|
||||||
|
10 87 74 53 66
|
||||||
|
14 99 85 48 88
|
||||||
|
59 33 76 71 31
|
||||||
|
83 39 2 67 35
|
||||||
|
|
||||||
|
62 67 27 96 8
|
||||||
|
81 23 78 33 48
|
||||||
|
80 16 0 86 85
|
||||||
|
26 54 29 32 89
|
||||||
|
88 77 43 18 46
|
||||||
|
|
||||||
|
87 88 13 49 80
|
||||||
|
78 19 81 56 11
|
||||||
|
18 55 70 44 48
|
||||||
|
31 37 24 95 28
|
||||||
|
20 79 89 94 14
|
||||||
|
|
||||||
|
10 31 52 49 79
|
||||||
|
8 72 61 27 42
|
||||||
|
73 4 11 43 91
|
||||||
|
37 44 58 19 97
|
||||||
|
96 63 90 13 74
|
||||||
|
|
||||||
|
71 27 87 40 99
|
||||||
|
69 29 79 64 67
|
||||||
|
85 66 4 28 30
|
||||||
|
23 51 16 49 45
|
||||||
|
92 12 74 1 75
|
||||||
|
|
||||||
|
46 52 40 12 44
|
||||||
|
0 73 20 86 1
|
||||||
|
85 32 4 42 2
|
||||||
|
21 33 56 39 9
|
||||||
|
49 69 76 98 22
|
||||||
|
|
||||||
|
42 81 5 11 2
|
||||||
|
57 50 77 8 24
|
||||||
|
85 92 15 39 52
|
||||||
|
37 70 36 79 67
|
||||||
|
34 20 16 93 22
|
||||||
|
|
||||||
|
49 68 25 4 46
|
||||||
|
17 57 77 59 54
|
||||||
|
65 83 18 84 63
|
||||||
|
36 74 61 22 71
|
||||||
|
14 0 26 3 98
|
||||||
|
|
||||||
|
1 80 93 66 58
|
||||||
|
38 9 18 60 2
|
||||||
|
70 46 35 88 11
|
||||||
|
95 89 85 29 26
|
||||||
|
82 68 25 15 53
|
||||||
|
|
||||||
|
97 80 28 17 7
|
||||||
|
67 46 54 95 98
|
||||||
|
38 74 42 57 79
|
||||||
|
63 29 36 78 6
|
||||||
|
90 60 84 10 14
|
||||||
|
|
||||||
|
18 88 8 96 0
|
||||||
|
66 56 43 47 11
|
||||||
|
69 73 14 71 25
|
||||||
|
27 63 31 44 94
|
||||||
|
75 95 84 74 13
|
||||||
|
|
||||||
|
92 9 98 17 74
|
||||||
|
46 7 2 51 52
|
||||||
|
21 60 5 87 15
|
||||||
|
86 91 65 69 54
|
||||||
|
61 85 1 62 53
|
||||||
|
|
||||||
|
89 80 4 0 68
|
||||||
|
17 87 52 86 48
|
||||||
|
3 34 16 25 35
|
||||||
|
13 38 49 66 50
|
||||||
|
36 43 65 84 56
|
||||||
|
|
||||||
|
9 93 54 92 55
|
||||||
|
32 2 39 96 98
|
||||||
|
58 72 52 83 97
|
||||||
|
12 44 27 24 20
|
||||||
|
0 3 28 56 69
|
||||||
|
|
||||||
|
66 56 37 36 72
|
||||||
|
35 49 40 43 44
|
||||||
|
54 21 59 12 65
|
||||||
|
74 25 22 80 98
|
||||||
|
27 81 69 97 62
|
||||||
|
|
||||||
|
72 81 27 61 74
|
||||||
|
26 50 79 13 53
|
||||||
|
49 78 76 70 43
|
||||||
|
51 64 99 46 67
|
||||||
|
68 59 71 17 41
|
||||||
|
|
||||||
|
97 22 73 30 98
|
||||||
|
8 54 68 47 23
|
||||||
|
70 89 41 52 61
|
||||||
|
81 28 58 90 3
|
||||||
|
88 40 86 46 43
|
||||||
|
|
||||||
|
94 6 46 43 59
|
||||||
|
41 28 87 31 45
|
||||||
|
83 26 66 81 1
|
||||||
|
76 86 15 42 8
|
||||||
|
67 47 54 4 77
|
||||||
|
|
||||||
|
96 56 22 67 2
|
||||||
|
95 47 90 54 51
|
||||||
|
78 79 29 82 48
|
||||||
|
61 81 77 6 24
|
||||||
|
71 93 98 26 75
|
||||||
|
|
||||||
|
95 7 77 94 64
|
||||||
|
19 79 14 24 5
|
||||||
|
50 48 4 71 22
|
||||||
|
35 69 89 54 2
|
||||||
|
6 51 8 82 58
|
||||||
|
|
||||||
|
87 6 85 53 64
|
||||||
|
50 43 80 61 15
|
||||||
|
69 41 51 76 0
|
||||||
|
78 26 37 62 16
|
||||||
|
12 33 75 58 52
|
||||||
|
|
||||||
|
67 18 68 52 42
|
||||||
|
37 30 49 31 69
|
||||||
|
93 90 76 9 32
|
||||||
|
60 84 73 94 17
|
||||||
|
21 27 66 43 44
|
||||||
|
|
||||||
|
89 69 24 14 1
|
||||||
|
88 33 50 2 63
|
||||||
|
12 34 6 97 53
|
||||||
|
28 26 55 8 32
|
||||||
|
49 19 17 64 86
|
||||||
|
|
||||||
|
31 37 81 65 38
|
||||||
|
96 18 45 19 58
|
||||||
|
35 43 1 49 41
|
||||||
|
46 85 92 53 15
|
||||||
|
3 34 8 14 21
|
||||||
|
|
||||||
|
35 68 61 45 39
|
||||||
|
46 99 52 55 15
|
||||||
|
74 14 10 62 17
|
||||||
|
8 66 98 89 91
|
||||||
|
58 24 44 27 29
|
||||||
|
|
||||||
|
28 48 52 18 13
|
||||||
|
17 35 20 11 49
|
||||||
|
93 50 31 95 83
|
||||||
|
27 33 79 44 80
|
||||||
|
4 96 23 65 68
|
||||||
|
|
||||||
|
70 78 31 86 36
|
||||||
|
99 38 62 95 27
|
||||||
|
52 74 25 80 41
|
||||||
|
30 15 47 19 21
|
||||||
|
77 23 53 9 7
|
||||||
|
|
||||||
|
0 83 11 25 42
|
||||||
|
50 64 76 67 72
|
||||||
|
75 30 82 15 84
|
||||||
|
58 17 87 61 33
|
||||||
|
98 74 44 3 93
|
||||||
|
|
||||||
|
5 40 78 24 11
|
||||||
|
57 17 67 60 25
|
||||||
|
37 76 28 56 35
|
||||||
|
66 94 2 90 47
|
||||||
|
86 10 85 46 45
|
||||||
|
|
||||||
|
63 12 7 74 14
|
||||||
|
21 31 84 51 36
|
||||||
|
66 20 25 46 41
|
||||||
|
15 3 18 62 45
|
||||||
|
35 78 93 2 9
|
||||||
|
|
||||||
|
90 9 33 63 41
|
||||||
|
25 73 35 97 19
|
||||||
|
99 96 45 71 22
|
||||||
|
84 43 29 14 88
|
||||||
|
42 8 1 78 68
|
||||||
|
|
||||||
|
98 84 38 95 27
|
||||||
|
18 32 54 12 96
|
||||||
|
56 50 2 45 53
|
||||||
|
14 83 59 72 70
|
||||||
|
22 41 28 9 78
|
||||||
|
|
||||||
|
89 94 50 33 73
|
||||||
|
31 47 8 35 34
|
||||||
|
43 92 95 21 51
|
||||||
|
68 13 53 24 38
|
||||||
|
80 69 44 87 83
|
||||||
|
|
||||||
|
32 82 75 73 91
|
||||||
|
99 10 22 58 23
|
||||||
|
86 9 42 81 40
|
||||||
|
71 25 3 78 54
|
||||||
|
80 15 83 5 4
|
||||||
|
|
||||||
|
58 1 3 11 24
|
||||||
|
66 51 84 44 25
|
||||||
|
37 54 12 27 97
|
||||||
|
38 2 39 85 83
|
||||||
|
89 91 33 79 59
|
||||||
|
|
||||||
|
49 22 12 84 60
|
||||||
|
34 29 11 92 19
|
||||||
|
97 41 88 53 38
|
||||||
|
26 37 8 36 67
|
||||||
|
91 3 90 52 46
|
||||||
|
|
||||||
|
77 35 76 56 20
|
||||||
|
39 94 37 3 83
|
||||||
|
78 81 66 29 4
|
||||||
|
82 41 38 0 73
|
||||||
|
59 16 88 15 30
|
||||||
|
|
||||||
|
34 69 74 90 33
|
||||||
|
9 47 71 94 10
|
||||||
|
76 50 15 19 32
|
||||||
|
49 89 31 21 92
|
||||||
|
80 12 13 97 93
|
||||||
|
|
||||||
|
45 94 35 59 20
|
||||||
|
18 46 14 36 30
|
||||||
|
6 78 84 38 99
|
||||||
|
5 4 90 92 63
|
||||||
|
34 24 26 75 3
|
||||||
|
|
||||||
|
80 39 1 93 55
|
||||||
|
67 71 30 44 76
|
||||||
|
38 13 73 21 8
|
||||||
|
11 47 46 69 29
|
||||||
|
15 57 95 52 34
|
||||||
|
|
||||||
|
45 86 88 80 19
|
||||||
|
3 5 55 36 90
|
||||||
|
54 85 44 18 39
|
||||||
|
57 92 42 25 77
|
||||||
|
43 0 12 1 24
|
||||||
|
|
||||||
|
74 71 83 29 25
|
||||||
|
56 12 52 33 64
|
||||||
|
68 94 97 14 15
|
||||||
|
7 48 24 80 5
|
||||||
|
54 87 35 1 66
|
||||||
|
|
||||||
|
55 50 73 72 36
|
||||||
|
17 80 87 68 90
|
||||||
|
8 33 81 1 51
|
||||||
|
67 61 71 54 95
|
||||||
|
93 98 27 56 0
|
||||||
|
|
||||||
|
19 32 63 6 98
|
||||||
|
13 38 23 28 8
|
||||||
|
5 31 66 72 39
|
||||||
|
99 46 2 64 14
|
||||||
|
91 83 35 85 10
|
||||||
|
|
||||||
|
67 85 49 68 37
|
||||||
|
8 36 31 81 18
|
||||||
|
74 61 20 80 50
|
||||||
|
34 23 42 52 39
|
||||||
|
21 14 22 58 54
|
||||||
|
|
||||||
|
16 14 69 13 81
|
||||||
|
21 96 62 7 5
|
||||||
|
95 52 0 67 24
|
||||||
|
6 30 65 66 86
|
||||||
|
28 25 85 56 15
|
||||||
|
|
||||||
|
4 41 21 86 32
|
||||||
|
95 23 63 28 2
|
||||||
|
9 16 37 84 14
|
||||||
|
92 22 71 42 5
|
||||||
|
46 65 69 81 57
|
||||||
|
|
||||||
|
45 20 46 44 22
|
||||||
|
62 93 78 58 25
|
||||||
|
91 38 29 68 24
|
||||||
|
21 55 71 43 26
|
||||||
|
64 76 84 80 99
|
||||||
|
|
||||||
|
92 67 43 5 12
|
||||||
|
2 64 46 15 96
|
||||||
|
95 75 73 38 30
|
||||||
|
10 65 20 39 26
|
||||||
|
36 16 25 27 88
|
||||||
|
|
||||||
|
9 62 18 58 34
|
||||||
|
85 80 36 2 48
|
||||||
|
16 60 75 72 51
|
||||||
|
39 22 32 61 54
|
||||||
|
40 44 23 87 53
|
||||||
|
|
||||||
|
93 69 56 4 22
|
||||||
|
73 51 24 53 19
|
||||||
|
83 98 77 94 59
|
||||||
|
52 70 15 40 48
|
||||||
|
60 89 67 92 85
|
||||||
|
|
||||||
|
48 72 42 80 22
|
||||||
|
99 49 11 77 4
|
||||||
|
28 24 1 63 51
|
||||||
|
85 93 62 7 78
|
||||||
|
35 32 3 21 86
|
||||||
|
|
||||||
|
36 75 67 79 34
|
||||||
|
20 8 71 6 5
|
||||||
|
50 61 14 52 81
|
||||||
|
26 37 0 80 77
|
||||||
|
93 47 86 54 94
|
||||||
|
|
||||||
|
50 19 68 54 80
|
||||||
|
81 12 33 87 24
|
||||||
|
28 40 37 30 31
|
||||||
|
41 51 15 27 97
|
||||||
|
67 70 14 77 86
|
||||||
|
|
||||||
|
89 57 48 37 27
|
||||||
|
44 46 29 63 20
|
||||||
|
74 88 25 68 76
|
||||||
|
18 28 91 59 58
|
||||||
|
99 77 62 64 83
|
||||||
|
|
||||||
|
22 5 86 37 42
|
||||||
|
47 69 87 34 89
|
||||||
|
64 33 18 56 51
|
||||||
|
30 49 11 79 17
|
||||||
|
61 80 0 29 57
|
||||||
|
|
||||||
|
7 82 87 15 83
|
||||||
|
76 43 92 1 97
|
||||||
|
0 46 2 86 6
|
||||||
|
48 27 29 61 67
|
||||||
|
53 10 64 93 77
|
||||||
|
|
||||||
|
65 16 23 26 87
|
||||||
|
58 5 25 97 94
|
||||||
|
43 7 39 69 35
|
||||||
|
62 81 56 13 28
|
||||||
|
76 12 37 14 93
|
||||||
|
|
||||||
|
90 81 15 55 23
|
||||||
|
58 40 8 56 76
|
||||||
|
83 7 78 89 47
|
||||||
|
65 70 13 48 42
|
||||||
|
16 69 66 52 46
|
||||||
|
|
||||||
|
30 38 20 32 94
|
||||||
|
91 96 34 23 90
|
||||||
|
16 24 49 50 86
|
||||||
|
65 19 56 7 66
|
||||||
|
80 60 74 71 11
|
||||||
|
|
||||||
|
60 77 54 25 22
|
||||||
|
9 61 68 6 89
|
||||||
|
15 71 10 84 41
|
||||||
|
1 47 8 43 63
|
||||||
|
69 57 85 24 81
|
||||||
|
|
||||||
|
54 83 73 52 49
|
||||||
|
69 96 31 57 44
|
||||||
|
19 66 24 6 55
|
||||||
|
91 84 20 3 27
|
||||||
|
7 9 71 43 75
|
||||||
|
|
||||||
|
90 72 15 99 2
|
||||||
|
73 56 48 28 62
|
||||||
|
40 75 0 59 31
|
||||||
|
43 67 44 24 77
|
||||||
|
98 35 4 3 37
|
||||||
|
|
||||||
|
2 85 72 39 49
|
||||||
|
58 25 91 69 19
|
||||||
|
34 8 57 42 55
|
||||||
|
80 21 51 64 30
|
||||||
|
28 32 82 84 6
|
||||||
|
|
||||||
|
33 77 39 13 12
|
||||||
|
86 21 96 82 94
|
||||||
|
78 92 42 45 70
|
||||||
|
31 22 60 80 67
|
||||||
|
79 27 93 55 65
|
||||||
|
|
||||||
|
49 90 73 72 10
|
||||||
|
98 89 77 88 12
|
||||||
|
83 3 31 47 21
|
||||||
|
65 26 93 55 53
|
||||||
|
5 95 22 8 63
|
||||||
|
|
||||||
|
79 88 11 62 25
|
||||||
|
85 14 77 4 19
|
||||||
|
41 31 83 26 67
|
||||||
|
46 98 74 99 2
|
||||||
|
44 53 70 36 52
|
||||||
|
|
||||||
|
21 33 15 57 53
|
||||||
|
56 91 25 69 10
|
||||||
|
52 59 73 96 87
|
||||||
|
65 71 14 37 2
|
||||||
|
39 89 29 83 64
|
||||||
|
|
||||||
|
88 38 45 39 20
|
||||||
|
99 72 61 96 4
|
||||||
|
23 24 67 49 80
|
||||||
|
77 6 65 76 18
|
||||||
|
59 51 78 33 46
|
||||||
|
|
||||||
|
44 22 9 90 83
|
||||||
|
93 50 2 54 26
|
||||||
|
68 71 43 85 41
|
||||||
|
38 20 6 64 24
|
||||||
|
81 39 33 56 27
|
||||||
|
|
||||||
|
98 1 69 30 38
|
||||||
|
67 52 79 31 0
|
||||||
|
24 41 82 55 73
|
||||||
|
33 66 64 20 7
|
||||||
|
65 9 14 70 94
|
||||||
|
|
||||||
|
59 63 65 25 1
|
||||||
|
36 85 61 82 50
|
||||||
|
52 3 70 30 43
|
||||||
|
79 57 31 71 76
|
||||||
|
19 97 93 77 49
|
||||||
|
|
||||||
|
60 45 90 32 74
|
||||||
|
77 64 58 44 43
|
||||||
|
71 49 37 21 46
|
||||||
|
50 67 1 24 15
|
||||||
|
14 22 0 40 23
|
||||||
|
|
||||||
|
65 87 81 64 28
|
||||||
|
53 80 23 76 77
|
||||||
|
49 14 50 2 35
|
||||||
|
85 26 88 94 30
|
||||||
|
79 18 68 15 45
|
||||||
|
|
||||||
|
6 48 38 63 92
|
||||||
|
51 45 58 4 76
|
||||||
|
78 40 22 17 55
|
||||||
|
79 12 66 61 5
|
||||||
|
68 74 0 93 89
|
||||||
|
|
||||||
|
66 4 65 71 77
|
||||||
|
47 35 38 83 64
|
||||||
|
53 16 9 56 25
|
||||||
|
92 81 55 60 33
|
||||||
|
80 24 73 0 26
|
||||||
|
|
||||||
|
26 29 55 76 38
|
||||||
|
79 52 91 84 39
|
||||||
|
50 57 37 34 71
|
||||||
|
33 31 68 92 24
|
||||||
|
81 95 5 70 8
|
||||||
|
|
||||||
|
83 64 11 67 42
|
||||||
|
97 29 27 4 78
|
||||||
|
23 10 48 71 81
|
||||||
|
80 74 86 17 36
|
||||||
|
61 14 85 21 96
|
||||||
|
|
||||||
|
18 8 7 88 25
|
||||||
|
59 5 28 57 69
|
||||||
|
64 54 16 70 72
|
||||||
|
13 75 71 33 2
|
||||||
|
60 55 46 51 32
|
||||||
|
|
||||||
|
23 89 63 96 88
|
||||||
|
71 66 9 53 65
|
||||||
|
56 46 29 95 80
|
||||||
|
44 94 90 3 5
|
||||||
|
11 99 59 60 78
|
||||||
|
|
||||||
|
42 33 81 25 0
|
||||||
|
46 66 63 82 94
|
||||||
|
52 73 92 30 24
|
||||||
|
59 26 50 87 45
|
||||||
|
79 55 74 17 64
|
||||||
|
|
||||||
|
95 43 13 98 18
|
||||||
|
62 12 24 88 28
|
||||||
|
23 11 93 51 67
|
||||||
|
71 0 44 64 96
|
||||||
|
66 17 84 90 19
|
||||||
|
|
||||||
|
38 6 12 75 27
|
||||||
|
28 73 62 50 51
|
||||||
|
63 86 29 98 15
|
||||||
|
46 90 4 58 96
|
||||||
|
20 78 64 56 82
|
||||||
|
|
||||||
|
19 91 23 40 1
|
||||||
|
78 57 75 43 2
|
||||||
|
35 60 85 74 30
|
||||||
|
80 3 63 54 32
|
||||||
|
82 99 89 25 88
|
||||||
|
|
||||||
|
88 13 92 11 72
|
||||||
|
56 6 35 55 21
|
||||||
|
8 20 36 60 99
|
||||||
|
1 96 57 45 12
|
||||||
|
41 73 50 83 69
|
||||||
|
|
||||||
|
42 69 53 76 11
|
||||||
|
38 74 13 14 86
|
||||||
|
18 49 51 67 61
|
||||||
|
26 80 47 16 78
|
||||||
|
66 46 12 68 79
|
||||||
|
|
||||||
|
22 90 72 93 24
|
||||||
|
55 29 43 28 5
|
||||||
|
99 47 87 40 51
|
||||||
|
81 18 70 20 36
|
||||||
|
0 48 23 46 82
|
||||||
|
|
||||||
|
91 74 83 95 54
|
||||||
|
60 56 38 37 89
|
||||||
|
87 96 71 50 35
|
||||||
|
5 11 42 72 3
|
||||||
|
77 81 36 49 97
|
||||||
|
|
||||||
|
71 72 17 34 93
|
||||||
|
45 81 22 67 23
|
||||||
|
61 20 94 14 1
|
||||||
|
85 40 15 36 88
|
||||||
|
54 91 62 73 9
|
||||||
|
|
||||||
|
66 36 39 58 60
|
||||||
|
96 8 22 49 77
|
||||||
|
76 64 47 78 30
|
||||||
|
50 41 12 69 15
|
||||||
|
7 1 29 72 27
|
||||||
|
|
||||||
|
90 12 65 13 39
|
||||||
|
75 70 47 36 79
|
||||||
|
31 54 17 10 32
|
||||||
|
76 92 55 83 40
|
||||||
|
49 5 20 44 37
|
||||||
|
|
||||||
|
16 78 65 5 70
|
||||||
|
63 72 89 93 66
|
||||||
|
21 90 46 54 81
|
||||||
|
7 48 88 60 11
|
||||||
|
95 0 38 3 26
|
||||||
|
|
||||||
|
19 65 66 41 27
|
||||||
|
7 18 91 52 48
|
||||||
|
87 55 49 68 71
|
||||||
|
85 12 4 40 1
|
||||||
|
57 67 6 11 58
|
||||||
|
|
||||||
|
91 85 38 14 21
|
||||||
|
63 93 37 76 25
|
||||||
|
68 36 4 24 71
|
||||||
|
43 31 60 19 95
|
||||||
|
52 55 13 83 78
|
40
day_6/code.py
Normal file
40
day_6/code.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
db = False
|
||||||
|
|
||||||
|
import fileinput
|
||||||
|
|
||||||
|
state = []
|
||||||
|
|
||||||
|
lines = [l for l in fileinput.input()]
|
||||||
|
assert(len(lines) > 0)
|
||||||
|
assert(len(lines[0]) > 0)
|
||||||
|
|
||||||
|
rawState = list(map(int, lines[0].split(',')))
|
||||||
|
|
||||||
|
state = [0 for i in range(9)]
|
||||||
|
|
||||||
|
for s in rawState:
|
||||||
|
state[s] += 1
|
||||||
|
|
||||||
|
days = 256
|
||||||
|
day = 0
|
||||||
|
|
||||||
|
if db:
|
||||||
|
print(day, ",".join(map(str, state)))
|
||||||
|
|
||||||
|
for day in range(1, days+1):
|
||||||
|
nextState = [0 for i in range(9)]
|
||||||
|
for i, s in enumerate(state):
|
||||||
|
if i == 0:
|
||||||
|
nextState[6] = s
|
||||||
|
nextState[8] = s
|
||||||
|
else:
|
||||||
|
nextState[i-1] += s
|
||||||
|
|
||||||
|
state = nextState.copy()
|
||||||
|
|
||||||
|
if db:
|
||||||
|
print(day, ",".join(map(str, state)))
|
||||||
|
|
||||||
|
print('===')
|
||||||
|
print(sum(state))
|
1
day_6/example.txt
Normal file
1
day_6/example.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
3,4,3,1,2
|
2
day_6/input.txt
Normal file
2
day_6/input.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
2,1,1,1,1,1,1,5,1,1,1,1,5,1,1,3,5,1,1,3,1,1,3,1,4,4,4,5,1,1,1,3,1,3,1,1,2,2,1,1,1,5,1,1,1,5,2,5,1,1,2,1,3,3,5,1,1,4,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,4,1,5,1,2,1,1,1,1,5,1,1,1,1,1,5,1,1,1,4,5,1,1,3,4,1,1,1,3,5,1,1,1,2,1,1,4,1,4,1,2,1,1,2,1,5,1,1,1,5,1,2,2,1,1,1,5,1,2,3,1,1,1,5,3,2,1,1,3,1,1,3,1,3,1,1,1,5,1,1,1,1,1,1,1,3,1,1,1,1,3,1,1,4,1,1,3,2,1,2,1,1,2,2,1,2,1,1,1,4,1,2,4,1,1,4,4,1,1,1,1,1,4,1,1,1,2,1,1,2,1,5,1,1,1,1,1,5,1,3,1,1,2,3,4,4,1,1,1,3,2,4,4,1,1,3,5,1,1,1,1,4,1,1,1,1,1,5,3,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,5,1,4,4,1,1,1,1,1,1,1,1,3,1,3,1,4,1,1,2,2,2,1,1,2,1,1
|
||||||
|
|
BIN
day_7/code
Normal file
BIN
day_7/code
Normal file
Binary file not shown.
BIN
day_7/code.hi
Normal file
BIN
day_7/code.hi
Normal file
Binary file not shown.
45
day_7/code.hs
Normal file
45
day_7/code.hs
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
|
||||||
|
import Data.List
|
||||||
|
|
||||||
|
splitStrOnce :: String -> String -> (String, String)
|
||||||
|
splitStrOnce separator "" = ("", "")
|
||||||
|
splitStrOnce "" subject = (subject, "")
|
||||||
|
splitStrOnce separator subject = do
|
||||||
|
let sepLen = length separator
|
||||||
|
if (take sepLen subject) == separator then
|
||||||
|
("", (drop sepLen subject))
|
||||||
|
else do
|
||||||
|
let res = splitStrOnce separator (tail subject)
|
||||||
|
(((head subject):(fst res)), (snd res))
|
||||||
|
|
||||||
|
splitStr :: String -> String -> [String]
|
||||||
|
splitStr separator "" = []
|
||||||
|
splitStr separator subject = do
|
||||||
|
let res = splitStrOnce separator subject
|
||||||
|
(fst res):(splitStr separator (snd res))
|
||||||
|
|
||||||
|
intOfString :: String -> Int
|
||||||
|
intOfString x = read x :: Int
|
||||||
|
|
||||||
|
minimumsSnd :: Ord b => [(a, b)] -> [(a, b)]
|
||||||
|
minimumsSnd [] = []
|
||||||
|
minimumsSnd xs = filter ((==) minsnd . snd) xs
|
||||||
|
where minsnd = minimum (map snd xs)
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
input <- getContents
|
||||||
|
let crabs = do {
|
||||||
|
map (\x -> read x :: Int) $
|
||||||
|
map (filter (\x -> x /= '\n')) $
|
||||||
|
splitStr "," input
|
||||||
|
}
|
||||||
|
let cases = do {
|
||||||
|
map (\x -> (x, sum (map (\y -> do {
|
||||||
|
sum [1..((abs (y-x)))]
|
||||||
|
}) crabs))) [(minimum crabs)..(maximum crabs)]
|
||||||
|
}
|
||||||
|
let min = minimumsSnd
|
||||||
|
putStrLn $ show $ snd $ head $ min cases -- ans to part 2
|
||||||
|
|
||||||
|
-- C'est un code pas du tout efficace
|
18
day_7/code.js
Normal file
18
day_7/code.js
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
const readline = require('readline')
|
||||||
|
const rl = readline.createInterface({
|
||||||
|
input: process.stdin,
|
||||||
|
terminal: false
|
||||||
|
})
|
||||||
|
|
||||||
|
lines = []
|
||||||
|
rl.on('line', (line) => {
|
||||||
|
lines.push(line)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rl.on('close', () => {
|
||||||
|
console.log(lines)
|
||||||
|
|
||||||
|
})
|
BIN
day_7/code.o
Normal file
BIN
day_7/code.o
Normal file
Binary file not shown.
1
day_7/example.txt
Normal file
1
day_7/example.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
16,1,2,0,4,2,7,1,2,14
|
1
day_7/input.txt
Normal file
1
day_7/input.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,51,13,782,658,1369,575,693,395,898,552,57,374,155,541,279,428,338,390,0,181,952,350,123,57,483,449,715,672,619,910,254,308,104,682,560,928,406,4,1328,878,36,1397,1111,1586,548,106,284,20,462,1248,1033,229,108,336,888,289,464,757,19,58,1,262,1202,576,101,928,265,781,145,829,1183,1220,181,194,1181,11,792,1542,1330,728,273,493,1753,327,1736,33,1547,750,1623,374,1603,26,116,169,1270,191,11,47,312,136,46,486,1478,28,64,258,74,351,85,105,1137,531,1573,56,676,532,141,955,98,4,541,1546,1771,432,844,228,103,281,404,2,1431,865,1094,12,134,483,152,308,135,135,257,439,5,174,906,148,1000,160,304,190,478,199,395,693,257,84,148,140,76,354,595,1,633,284,24,83,782,1359,1187,351,290,704,23,692,952,1417,192,868,349,56,936,279,277,115,1579,476,261,50,46,1144,568,11,495,170,726,888,548,509,1265,179,93,834,180,143,866,899,292,958,126,1608,1066,327,1149,74,227,346,110,736,592,989,27,12,123,325,650,49,76,0,299,85,261,729,1135,46,479,879,226,1146,781,852,426,184,274,1323,449,419,90,758,378,134,219,333,833,55,59,358,175,293,36,100,27,764,564,188,814,612,299,1057,829,322,235,122,330,280,1397,654,370,320,770,1082,92,1513,1085,563,455,322,664,14,1122,40,381,750,145,381,422,553,227,20,503,368,43,316,71,479,438,222,204,355,67,264,882,1168,416,14,74,371,293,3,1005,237,422,570,1391,818,451,987,529,79,28,664,454,820,1425,50,49,32,486,397,680,1247,207,6,742,84,1362,540,233,1082,847,28,199,84,111,858,362,23,1755,61,144,652,82,1379,372,329,900,255,850,1006,21,1345,252,938,214,394,12,333,354,834,298,132,246,167,140,423,50,35,463,1502,390,672,2,123,78,588,1202,523,1507,64,68,130,511,263,734,112,1463,1097,99,552,53,1189,343,496,16,260,225,1065,855,12,24,88,958,848,173,1131,1639,559,344,216,19,872,287,288,911,775,1722,1049,17,223,375,378,1109,977,520,350,138,376,75,638,284,167,328,467,146,1379,947,149,890,661,56,1339,148,346,693,52,812,963,198,120,1194,231,7,1558,148,545,325,1038,57,52,936,117,531,684,266,687,394,851,1068,571,627,558,172,998,909,1403,358,13,419,0,1247,81,46,647,833,1370,340,287,74,51,691,198,129,257,769,108,163,480,295,150,1944,1897,161,1081,1521,733,351,376,126,191,94,228,76,957,652,487,805,10,347,217,394,1142,725,780,50,234,654,233,119,1035,226,110,757,75,6,13,649,396,13,191,115,368,60,731,485,621,1454,669,518,29,41,495,768,504,209,222,1168,34,1061,1654,973,979,55,802,139,489,386,757,1258,1720,757,994,172,572,266,15,267,830,1105,30,112,188,26,54,205,1206,1193,688,8,1149,1355,983,1073,434,62,1242,264,181,146,8,20,968,418,607,105,22,221,392,127,388,1055,98,241,58,805,2,801,925,241,931,1184,472,563,167,398,388,1290,111,237,1167,332,293,166,51,319,201,40,128,58,90,270,525,1171,1222,1129,1657,525,427,69,340,547,1486,174,383,900,763,160,193,696,896,477,564,558,870,294,868,951,267,178,454,35,1042,627,1451,740,2,107,4,632,114,754,83,244,43,699,83,1001,226,404,956,522,73,505,193,662,548,525,110,1241,415,794,1954,1062,1217,32,98,4,355,143,146,900,369,1418,250,404,703,469,34,326,62,231,564,44,655,511,1139,1010,1438,354,1117,591,118,509,496,1438,232,1179,526,259,984,643,169,165,50,1136,86,702,412,1762,62,219,1089,687,10,29,330,893,1658,732,48,806,1158,854,14,44,548,627,811,41,1212,341,474,943,25,699,204,1449,769,134,23,28,1216,622,1371,366,233,8,29,615,16,166,256,324,169,657,21,854,674,10,1217,1499,1512,88,369,771,60,317,28,1251,14,1318,376,264,55,658,1873,1280,581,850,147,267,1147,150,6,18,1166,331,163,281,773,1284,501,588,1055,681,41,506,270,104,1212,440,181,1177,257,1444,406,111,662,75,28,214,892,349,380,1677,1885,88,398,713,1596,99,541,219,149,1222,455,29,78,217,618,33,94,335,1050,848,958,67,12,61,9,1133,96,151,1057,60,167,324,99,49,1159,571,270,1291,217,276,42,8,20,652,949,134,132,552,365,112,355,952,167,33,1053,994,445,277,652,569,1594,248
|
Loading…
Reference in a new issue