Browse Source

Day 10.

Leaderboard position: 70 and 84
master
Chris Smith 5 years ago
parent
commit
4756cb9e28
3 changed files with 441 additions and 0 deletions
  1. 2
    0
      answers/10.txt
  2. 391
    0
      data/10.txt
  3. 48
    0
      day10.nim

+ 2
- 0
answers/10.txt View File

@@ -0,0 +1,2 @@
1
+RGRKHKNA
2
+10117

+ 391
- 0
data/10.txt View File

@@ -0,0 +1,391 @@
1
+position=<-50429,  40580> velocity=< 5, -4>
2
+position=< 30528, -40359> velocity=<-3,  4>
3
+position=< 20386, -40351> velocity=<-2,  4>
4
+position=< -9924,  30462> velocity=< 1, -3>
5
+position=<-30203, -50470> velocity=< 3,  5>
6
+position=< 50746, -40351> velocity=<-5,  4>
7
+position=< 50778, -20120> velocity=<-5,  2>
8
+position=<-20046,  10229> velocity=< 2, -1>
9
+position=< 40645,  30467> velocity=<-4, -3>
10
+position=<-50419, -10005> velocity=< 5,  1>
11
+position=<-20089,  -9999> velocity=< 2,  1>
12
+position=<-50386, -10003> velocity=< 5,  1>
13
+position=< 40613, -20117> velocity=<-4,  2>
14
+position=<-40272,  50699> velocity=< 4, -5>
15
+position=< 20406, -50467> velocity=<-2,  5>
16
+position=< -9972, -10000> velocity=< 1,  1>
17
+position=< -9921,  10229> velocity=< 1, -1>
18
+position=< 40635, -30240> velocity=<-4,  3>
19
+position=<-50389, -30237> velocity=< 5,  3>
20
+position=< 20390,  10231> velocity=<-2, -1>
21
+position=<-40325,  50694> velocity=< 4, -5>
22
+position=< 20382,  20350> velocity=<-2, -2>
23
+position=< 50749, -10007> velocity=<-5,  1>
24
+position=<-20046,  40584> velocity=< 2, -4>
25
+position=< 40633, -20120> velocity=<-4,  2>
26
+position=< 20416, -10005> velocity=<-2,  1>
27
+position=< 30520,  40577> velocity=<-3, -4>
28
+position=< 20377, -10004> velocity=<-2,  1>
29
+position=< 40608,  20348> velocity=<-4, -2>
30
+position=<-40309, -30237> velocity=< 4,  3>
31
+position=< 10305, -20123> velocity=<-1,  2>
32
+position=< 40669,  30464> velocity=<-4, -3>
33
+position=<-30150,  50700> velocity=< 3, -5>
34
+position=<-20090, -40359> velocity=< 2,  4>
35
+position=< 30496,  20352> velocity=<-3, -2>
36
+position=< 20387,  10235> velocity=<-2, -1>
37
+position=<-50445,  40581> velocity=< 5, -4>
38
+position=< 20398, -20119> velocity=<-2,  2>
39
+position=< 20374,  10232> velocity=<-2, -1>
40
+position=< 20414, -50472> velocity=<-2,  5>
41
+position=< -9916,  -9999> velocity=< 1,  1>
42
+position=< 50765,  40585> velocity=<-5, -4>
43
+position=<-50426,  50694> velocity=< 5, -5>
44
+position=< -9920,  50699> velocity=< 1, -5>
45
+position=<-50408,  30464> velocity=< 5, -3>
46
+position=< 50781, -20123> velocity=<-5,  2>
47
+position=<-30211,  30462> velocity=< 3, -3>
48
+position=< 40617, -20116> velocity=<-4,  2>
49
+position=< 50765,  10227> velocity=<-5, -1>
50
+position=<-20066,  40585> velocity=< 2, -4>
51
+position=<-30170,  40582> velocity=< 3, -4>
52
+position=< 10290,  50698> velocity=<-1, -5>
53
+position=<-40318,  10235> velocity=< 4, -1>
54
+position=< 50785,  10227> velocity=<-5, -1>
55
+position=< 30526,  10230> velocity=<-3, -1>
56
+position=< -9977, -20120> velocity=< 1,  2>
57
+position=<-40327, -20121> velocity=< 4,  2>
58
+position=< 10299, -30236> velocity=<-1,  3>
59
+position=< 40632, -20117> velocity=<-4,  2>
60
+position=< -9958,  10230> velocity=< 1, -1>
61
+position=<-50420, -50471> velocity=< 5,  5>
62
+position=< 10281,  50699> velocity=<-1, -5>
63
+position=< 50749,  50700> velocity=<-5, -5>
64
+position=< 50786,  20351> velocity=<-5, -2>
65
+position=< 50776,  20348> velocity=<-5, -2>
66
+position=< 50733, -30238> velocity=<-5,  3>
67
+position=< -9932, -30242> velocity=< 1,  3>
68
+position=< 40612,  30466> velocity=<-4, -3>
69
+position=< 30496, -20122> velocity=<-3,  2>
70
+position=<-30174,  30461> velocity=< 3, -3>
71
+position=< 30534, -50474> velocity=<-3,  5>
72
+position=< 40661,  -9999> velocity=<-4,  1>
73
+position=< 30552,  50696> velocity=<-3, -5>
74
+position=< 50775,  30464> velocity=<-5, -3>
75
+position=<-20057,  20345> velocity=< 2, -2>
76
+position=< 20410,  50698> velocity=<-2, -5>
77
+position=< 10297, -50474> velocity=<-1,  5>
78
+position=<-50429, -20118> velocity=< 5,  2>
79
+position=<-40327, -20121> velocity=< 4,  2>
80
+position=<-30194, -20121> velocity=< 3,  2>
81
+position=< -9956,  40580> velocity=< 1, -4>
82
+position=< 20427, -10008> velocity=<-2,  1>
83
+position=< 10257, -20122> velocity=<-1,  2>
84
+position=<-20075, -40355> velocity=< 2,  4>
85
+position=<-20041,  10234> velocity=< 2, -1>
86
+position=<-20033,  30468> velocity=< 2, -3>
87
+position=<-50389,  30464> velocity=< 5, -3>
88
+position=< 50773,  -9999> velocity=<-5,  1>
89
+position=<-30179, -50474> velocity=< 3,  5>
90
+position=< 40659,  30465> velocity=<-4, -3>
91
+position=< 50781, -20123> velocity=<-5,  2>
92
+position=< 40632, -10001> velocity=<-4,  1>
93
+position=<-30194, -30238> velocity=< 3,  3>
94
+position=<-20073, -20117> velocity=< 2,  2>
95
+position=< 50730,  10228> velocity=<-5, -1>
96
+position=< 10313,  40579> velocity=<-1, -4>
97
+position=<-50421, -10003> velocity=< 5,  1>
98
+position=< -9924,  40581> velocity=< 1, -4>
99
+position=<-30151, -30237> velocity=< 3,  3>
100
+position=< -9965,  20343> velocity=< 1, -2>
101
+position=< 50759,  50698> velocity=<-5, -5>
102
+position=<-20036, -30237> velocity=< 2,  3>
103
+position=<-20070, -20122> velocity=< 2,  2>
104
+position=< 40641, -50472> velocity=<-4,  5>
105
+position=<-40293,  50698> velocity=< 4, -5>
106
+position=< 50736, -30233> velocity=<-5,  3>
107
+position=<-50389,  20351> velocity=< 5, -2>
108
+position=< 20374, -30234> velocity=<-2,  3>
109
+position=<-20043, -20119> velocity=< 2,  2>
110
+position=<-50445, -10005> velocity=< 5,  1>
111
+position=< -9961, -20116> velocity=< 1,  2>
112
+position=<-40328,  40578> velocity=< 4, -4>
113
+position=<-50405,  10226> velocity=< 5, -1>
114
+position=< 10305, -40359> velocity=<-1,  4>
115
+position=< -9929, -40358> velocity=< 1,  4>
116
+position=< 30499, -50470> velocity=<-3,  5>
117
+position=< 50741, -30234> velocity=<-5,  3>
118
+position=< -9965,  20348> velocity=< 1, -2>
119
+position=<-20062, -30238> velocity=< 2,  3>
120
+position=<-20066, -30234> velocity=< 2,  3>
121
+position=< 50773,  10235> velocity=<-5, -1>
122
+position=< 20430, -40353> velocity=<-2,  4>
123
+position=<-40311, -40359> velocity=< 4,  4>
124
+position=< 50757, -30236> velocity=<-5,  3>
125
+position=<-30198,  20350> velocity=< 3, -2>
126
+position=< 40632, -10006> velocity=<-4,  1>
127
+position=<-50444, -40355> velocity=< 5,  4>
128
+position=< 20422,  10232> velocity=<-2, -1>
129
+position=<-50393,  50701> velocity=< 5, -5>
130
+position=<-50429, -40350> velocity=< 5,  4>
131
+position=<-20046, -30238> velocity=< 2,  3>
132
+position=<-50397, -30233> velocity=< 5,  3>
133
+position=< 40618, -10008> velocity=<-4,  1>
134
+position=<-40271, -10007> velocity=< 4,  1>
135
+position=<-20069,  10230> velocity=< 2, -1>
136
+position=<-30154,  40578> velocity=< 3, -4>
137
+position=<-20057,  50696> velocity=< 2, -5>
138
+position=< 40634, -20119> velocity=<-4,  2>
139
+position=< 30523, -10007> velocity=<-3,  1>
140
+position=< 10305,  50694> velocity=<-1, -5>
141
+position=< 30547, -10003> velocity=<-3,  1>
142
+position=< 10257, -50468> velocity=<-1,  5>
143
+position=< 40628,  10230> velocity=<-4, -1>
144
+position=<-20078, -30233> velocity=< 2,  3>
145
+position=<-40312, -50471> velocity=< 4,  5>
146
+position=< 30500,  20343> velocity=<-3, -2>
147
+position=< 10273,  40585> velocity=<-1, -4>
148
+position=< 10314, -30237> velocity=<-1,  3>
149
+position=< 20414,  40582> velocity=<-2, -4>
150
+position=< 30531,  50701> velocity=<-3, -5>
151
+position=<-30170, -20120> velocity=< 3,  2>
152
+position=<-50413, -20120> velocity=< 5,  2>
153
+position=< -9945, -40359> velocity=< 1,  4>
154
+position=<-40275,  30465> velocity=< 4, -3>
155
+position=<-40312,  40583> velocity=< 4, -4>
156
+position=<-30179,  40580> velocity=< 3, -4>
157
+position=< -9974,  30465> velocity=< 1, -3>
158
+position=< 10284,  10228> velocity=<-1, -1>
159
+position=< 20374,  50694> velocity=<-2, -5>
160
+position=< -9937,  50701> velocity=< 1, -5>
161
+position=<-50441,  50701> velocity=< 5, -5>
162
+position=< 10270, -50468> velocity=<-1,  5>
163
+position=< 50773,  50697> velocity=<-5, -5>
164
+position=< 40619, -40359> velocity=<-4,  4>
165
+position=<-40315,  40586> velocity=< 4, -4>
166
+position=<-30179,  10232> velocity=< 3, -1>
167
+position=<-20049,  30460> velocity=< 2, -3>
168
+position=< 10289, -50473> velocity=<-1,  5>
169
+position=<-20033, -20119> velocity=< 2,  2>
170
+position=< 50766, -40355> velocity=<-5,  4>
171
+position=<-30191,  50701> velocity=< 3, -5>
172
+position=< 10273,  30463> velocity=<-1, -3>
173
+position=< 50778,  -9999> velocity=<-5,  1>
174
+position=< 50730,  50695> velocity=<-5, -5>
175
+position=< -9929, -50473> velocity=< 1,  5>
176
+position=< 40644, -20121> velocity=<-4,  2>
177
+position=< 50725, -40352> velocity=<-5,  4>
178
+position=<-50388,  40582> velocity=< 5, -4>
179
+position=< 50741,  20345> velocity=<-5, -2>
180
+position=<-20090,  40581> velocity=< 2, -4>
181
+position=<-30191, -10008> velocity=< 3,  1>
182
+position=< 10273,  20348> velocity=<-1, -2>
183
+position=< 10268,  20343> velocity=<-1, -2>
184
+position=< 30533,  40580> velocity=<-3, -4>
185
+position=<-20041, -40358> velocity=< 2,  4>
186
+position=< 30531,  50703> velocity=<-3, -5>
187
+position=< 50757, -30234> velocity=<-5,  3>
188
+position=<-30187,  -9999> velocity=< 3,  1>
189
+position=<-50442,  40582> velocity=< 5, -4>
190
+position=< 50749, -30242> velocity=<-5,  3>
191
+position=<-30158, -20121> velocity=< 3,  2>
192
+position=<-50386, -20125> velocity=< 5,  2>
193
+position=< 40637,  10235> velocity=<-4, -1>
194
+position=<-30203, -20117> velocity=< 3,  2>
195
+position=<-50392, -20118> velocity=< 5,  2>
196
+position=< 30493,  20347> velocity=<-3, -2>
197
+position=<-30163,  40582> velocity=< 3, -4>
198
+position=< 30499,  40580> velocity=<-3, -4>
199
+position=<-50392, -50474> velocity=< 5,  5>
200
+position=<-20085,  10235> velocity=< 2, -1>
201
+position=< 10313,  20346> velocity=<-1, -2>
202
+position=< 40636,  50695> velocity=<-4, -5>
203
+position=<-50384, -30235> velocity=< 5,  3>
204
+position=< -9956,  -9999> velocity=< 1,  1>
205
+position=< 30547,  50703> velocity=<-3, -5>
206
+position=< -9957, -50472> velocity=< 1,  5>
207
+position=<-30174,  10232> velocity=< 3, -1>
208
+position=< 30544,  40586> velocity=<-3, -4>
209
+position=< 30552,  40582> velocity=<-3, -4>
210
+position=< 40611,  40577> velocity=<-4, -4>
211
+position=< 30549, -50476> velocity=<-3,  5>
212
+position=< -9945, -50473> velocity=< 1,  5>
213
+position=<-40296, -40352> velocity=< 4,  4>
214
+position=<-30163, -20117> velocity=< 3,  2>
215
+position=<-50405, -40357> velocity=< 5,  4>
216
+position=< 50786, -30236> velocity=<-5,  3>
217
+position=< 50757, -20124> velocity=<-5,  2>
218
+position=< 20392,  10230> velocity=<-2, -1>
219
+position=< 30531,  20348> velocity=<-3, -2>
220
+position=< 50735,  10235> velocity=<-5, -1>
221
+position=<-30198, -30233> velocity=< 3,  3>
222
+position=<-50397, -50469> velocity=< 5,  5>
223
+position=<-50441,  30467> velocity=< 5, -3>
224
+position=<-30163, -10000> velocity=< 3,  1>
225
+position=< 50773, -40355> velocity=<-5,  4>
226
+position=<-20086, -30234> velocity=< 2,  3>
227
+position=< 10276,  40577> velocity=<-1, -4>
228
+position=< 40661,  50700> velocity=<-4, -5>
229
+position=< 50728,  50699> velocity=<-5, -5>
230
+position=< 10313, -40353> velocity=<-1,  4>
231
+position=<-50445,  50697> velocity=< 5, -5>
232
+position=<-20050,  10227> velocity=< 2, -1>
233
+position=< 10315, -40359> velocity=<-1,  4>
234
+position=< 20379,  40579> velocity=<-2, -4>
235
+position=< 30507, -40359> velocity=<-3,  4>
236
+position=<-50444, -50476> velocity=< 5,  5>
237
+position=< 40637, -40350> velocity=<-4,  4>
238
+position=< 20427, -10005> velocity=<-2,  1>
239
+position=< 10318,  10233> velocity=<-1, -1>
240
+position=<-30190,  30463> velocity=< 3, -3>
241
+position=< 10300,  20345> velocity=<-1, -2>
242
+position=<-50408,  40578> velocity=< 5, -4>
243
+position=< 10297, -10002> velocity=<-1,  1>
244
+position=<-20060,  40581> velocity=< 2, -4>
245
+position=< 40640,  20352> velocity=<-4, -2>
246
+position=<-50437,  10231> velocity=< 5, -1>
247
+position=<-50429, -20119> velocity=< 5,  2>
248
+position=<-50396, -50474> velocity=< 5,  5>
249
+position=<-20078, -40358> velocity=< 2,  4>
250
+position=< 20376, -30242> velocity=<-2,  3>
251
+position=< 30528,  50695> velocity=<-3, -5>
252
+position=<-20043, -30236> velocity=< 2,  3>
253
+position=< 40632,  10226> velocity=<-4, -1>
254
+position=<-50413,  20344> velocity=< 5, -2>
255
+position=< -9940, -40356> velocity=< 1,  4>
256
+position=< 10308,  30465> velocity=<-1, -3>
257
+position=<-30171, -20118> velocity=< 3,  2>
258
+position=<-20066,  30461> velocity=< 2, -3>
259
+position=<-40291, -40351> velocity=< 4,  4>
260
+position=<-30191,  50700> velocity=< 3, -5>
261
+position=<-20054, -10007> velocity=< 2,  1>
262
+position=< 10270,  30461> velocity=<-1, -3>
263
+position=< -9940, -30234> velocity=< 1,  3>
264
+position=<-30150,  50703> velocity=< 3, -5>
265
+position=< -9965, -50476> velocity=< 1,  5>
266
+position=< 40664, -10002> velocity=<-4,  1>
267
+position=<-40324,  10230> velocity=< 4, -1>
268
+position=< -9924, -40354> velocity=< 1,  4>
269
+position=< 20416,  20349> velocity=<-2, -2>
270
+position=<-50397, -50471> velocity=< 5,  5>
271
+position=< 40610, -30242> velocity=<-4,  3>
272
+position=< -9964, -30236> velocity=< 1,  3>
273
+position=<-20094,  30464> velocity=< 2, -3>
274
+position=< 40660, -10000> velocity=<-4,  1>
275
+position=<-40311,  50698> velocity=< 4, -5>
276
+position=<-20091, -50472> velocity=< 2,  5>
277
+position=<-30154, -20124> velocity=< 3,  2>
278
+position=<-50389,  10229> velocity=< 5, -1>
279
+position=<-20094,  20344> velocity=< 2, -2>
280
+position=<-20074, -30235> velocity=< 2,  3>
281
+position=<-50433,  30468> velocity=< 5, -3>
282
+position=<-20054, -30238> velocity=< 2,  3>
283
+position=< -9945, -10006> velocity=< 1,  1>
284
+position=< -9945,  20347> velocity=< 1, -2>
285
+position=<-30193,  30460> velocity=< 3, -3>
286
+position=< 40632,  10227> velocity=<-4, -1>
287
+position=<-40315,  20344> velocity=< 4, -2>
288
+position=<-40303,  50698> velocity=< 4, -5>
289
+position=< 30526,  40581> velocity=<-3, -4>
290
+position=<-40300,  10234> velocity=< 4, -1>
291
+position=< 30507,  50700> velocity=<-3, -5>
292
+position=<-20083, -50471> velocity=< 2,  5>
293
+position=< 50733,  20344> velocity=<-5, -2>
294
+position=< -9969, -10006> velocity=< 1,  1>
295
+position=<-30174,  30469> velocity=< 3, -3>
296
+position=< 40660,  50702> velocity=<-4, -5>
297
+position=<-50393, -50468> velocity=< 5,  5>
298
+position=<-20054,  30462> velocity=< 2, -3>
299
+position=<-50404, -10004> velocity=< 5,  1>
300
+position=<-50440,  20351> velocity=< 5, -2>
301
+position=<-20042, -20118> velocity=< 2,  2>
302
+position=< 10289, -40350> velocity=<-1,  4>
303
+position=<-30162,  50695> velocity=< 3, -5>
304
+position=<-30171,  20349> velocity=< 3, -2>
305
+position=<-50413, -20125> velocity=< 5,  2>
306
+position=<-50424, -50467> velocity=< 5,  5>
307
+position=<-40315,  20348> velocity=< 4, -2>
308
+position=<-50392, -50470> velocity=< 5,  5>
309
+position=< 10281, -50473> velocity=<-1,  5>
310
+position=< 20395, -30240> velocity=<-2,  3>
311
+position=< 30499, -40356> velocity=<-3,  4>
312
+position=< 30531,  50697> velocity=<-3, -5>
313
+position=< 50766,  10230> velocity=<-5, -1>
314
+position=<-40291, -40355> velocity=< 4,  4>
315
+position=<-40291,  50699> velocity=< 4, -5>
316
+position=< 20418,  30461> velocity=<-2, -3>
317
+position=<-50400, -50467> velocity=< 5,  5>
318
+position=<-30202,  10226> velocity=< 3, -1>
319
+position=< 30540,  30462> velocity=<-3, -3>
320
+position=< 20376, -10008> velocity=<-2,  1>
321
+position=< -9953, -50473> velocity=< 1,  5>
322
+position=< 30512,  30468> velocity=<-3, -3>
323
+position=<-40328, -10001> velocity=< 4,  1>
324
+position=< -9933, -40351> velocity=< 1,  4>
325
+position=< 40645,  30460> velocity=<-4, -3>
326
+position=<-40316,  50699> velocity=< 4, -5>
327
+position=< -9965, -50476> velocity=< 1,  5>
328
+position=<-20046, -50468> velocity=< 2,  5>
329
+position=< -9921,  40584> velocity=< 1, -4>
330
+position=<-40275,  10232> velocity=< 4, -1>
331
+position=< -9916,  30467> velocity=< 1, -3>
332
+position=<-50445,  20349> velocity=< 5, -2>
333
+position=<-30168, -20118> velocity=< 3,  2>
334
+position=< 50773, -40354> velocity=<-5,  4>
335
+position=<-50397,  40584> velocity=< 5, -4>
336
+position=< 20392, -10008> velocity=<-2,  1>
337
+position=<-40272, -20116> velocity=< 4,  2>
338
+position=<-20078,  30468> velocity=< 2, -3>
339
+position=< 10299,  20346> velocity=<-1, -2>
340
+position=<-40328, -50469> velocity=< 4,  5>
341
+position=< 20395,  50695> velocity=<-2, -5>
342
+position=<-20086, -30236> velocity=< 2,  3>
343
+position=<-30169,  10232> velocity=< 3, -1>
344
+position=<-50396,  10227> velocity=< 5, -1>
345
+position=<-20081,  10232> velocity=< 2, -1>
346
+position=< 20430,  50701> velocity=<-2, -5>
347
+position=< 50775, -10005> velocity=<-5,  1>
348
+position=< 40648, -20125> velocity=<-4,  2>
349
+position=<-30191,  10230> velocity=< 3, -1>
350
+position=<-20062, -10002> velocity=< 2,  1>
351
+position=< 50745,  40577> velocity=<-5, -4>
352
+position=<-30179, -30237> velocity=< 3,  3>
353
+position=< 30544, -20125> velocity=<-3,  2>
354
+position=<-30187,  20347> velocity=< 3, -2>
355
+position=< 50773,  20343> velocity=<-5, -2>
356
+position=<-40267,  40580> velocity=< 4, -4>
357
+position=< 20406, -10000> velocity=<-2,  1>
358
+position=<-40291,  30465> velocity=< 4, -3>
359
+position=<-20084,  50694> velocity=< 2, -5>
360
+position=< 50725, -20124> velocity=<-5,  2>
361
+position=<-20078,  10230> velocity=< 2, -1>
362
+position=< 30528, -20119> velocity=<-3,  2>
363
+position=< 10273,  10227> velocity=<-1, -1>
364
+position=< -9964,  40584> velocity=< 1, -4>
365
+position=<-50445,  10235> velocity=< 5, -1>
366
+position=< 50729, -30236> velocity=<-5,  3>
367
+position=< -9916,  30468> velocity=< 1, -3>
368
+position=<-30167, -20124> velocity=< 3,  2>
369
+position=< 10270, -20117> velocity=<-1,  2>
370
+position=<-50405,  30465> velocity=< 5, -3>
371
+position=<-30184, -50469> velocity=< 3,  5>
372
+position=<-40312,  40584> velocity=< 4, -4>
373
+position=<-20065,  10226> velocity=< 2, -1>
374
+position=< 50762,  -9999> velocity=<-5,  1>
375
+position=< 40648, -50475> velocity=<-4,  5>
376
+position=< 20401,  30467> velocity=<-2, -3>
377
+position=<-20081, -10000> velocity=< 2,  1>
378
+position=<-30190,  10229> velocity=< 3, -1>
379
+position=<-50389,  20350> velocity=< 5, -2>
380
+position=< 30520,  10235> velocity=<-3, -1>
381
+position=< -9951, -40356> velocity=< 1,  4>
382
+position=< 40659, -30236> velocity=<-4,  3>
383
+position=< 50762,  30467> velocity=<-5, -3>
384
+position=<-50402, -50469> velocity=< 5,  5>
385
+position=< 40624, -30235> velocity=<-4,  3>
386
+position=< 40629, -30233> velocity=<-4,  3>
387
+position=< -9918,  20348> velocity=< 1, -2>
388
+position=<-30203, -30239> velocity=< 3,  3>
389
+position=<-50387,  20348> velocity=< 5, -2>
390
+position=< 30528, -20125> velocity=<-3,  2>
391
+position=< 20384, -20125> velocity=<-2,  2>

+ 48
- 0
day10.nim View File

@@ -0,0 +1,48 @@
1
+import math, sequtils, strscans, strutils
2
+
3
+type
4
+    Point = ref object
5
+        x, y, dx, dy: int
6
+
7
+var points: seq[Point]
8
+
9
+for line in readFile("data/10.txt").strip.splitlines:
10
+    var point = new(Point)
11
+    if not line.scanf("position=<$s$i,$s$i> velocity=<$s$i,$s$i>", point.x, point.y, point.dx, point.dy):
12
+        raise newException(Defect,  "Invalid input line: " & line)
13
+    points.add(point)
14
+
15
+var
16
+    t = 0
17
+    last_distance = int.high
18
+while true:
19
+    var
20
+        minx = int.high
21
+        maxx = int.low
22
+        miny = int.high
23
+        maxy = int.low
24
+    for point in points:
25
+        point.x += point.dx
26
+        point.y += point.dy
27
+        minx = min(minx, point.x)
28
+        maxx = max(maxx, point.x)
29
+        miny = min(miny, point.y)
30
+        maxy = max(maxy, point.y)
31
+
32
+    var distance = (maxx - minx) * (maxy - miny)
33
+    if distance > last_distance:
34
+        for y in miny..maxy:
35
+            var grid = newSeq[bool](1 + maxx - minx)
36
+            for point in points:
37
+                if point.y - point.dy == y:
38
+                    grid[point.x - point.dx - minx] = true
39
+            echo grid.map(proc(cell: bool): string =
40
+                if cell:
41
+                    "█"
42
+                else:
43
+                    " ").join
44
+        echo t
45
+        break
46
+    else:
47
+        last_distance = distance
48
+        t.inc