tangled
alpha
login
or
join now
tulkdan.dev
/
advent-of-code
0
fork
atom
this repo has no description
0
fork
atom
overview
issues
pulls
pipelines
feat: fourth day
tulkdan.dev
5 years ago
488e117c
c662df3b
+1135
4 changed files
expand all
collapse all
unified
split
input
day_04
day_04_sample
src
day_04.rs
lib.rs
+1029
input/day_04
reviewed
···
1
1
+
iyr:2015
2
2
+
hgt:59cm byr:2029 cid:219 pid:9381688753 eyr:1992 hcl:#b6652a
3
3
+
ecl:#7a0fa6
4
4
+
5
5
+
ecl:blu iyr:2018 pid:943614755 cid:335
6
6
+
byr:1968
7
7
+
eyr:2026
8
8
+
9
9
+
pid:067285985 hcl:#ceb3a1 cid:281
10
10
+
ecl:#07219a eyr:1944
11
11
+
iyr:2025
12
12
+
byr:2029 hgt:64cm
13
13
+
14
14
+
hgt:185cm
15
15
+
ecl:gry cid:222
16
16
+
iyr:2016
17
17
+
hcl:#866857 byr:1970 pid:269105457 eyr:2026
18
18
+
19
19
+
pid:260043570 hcl:#b6652a cid:275 byr:1990 ecl:brn
20
20
+
hgt:163cm iyr:2012
21
21
+
22
22
+
hgt:181cm pid:604983466
23
23
+
iyr:1930 eyr:2039 byr:1950 ecl:#906548 hcl:#b6652a
24
24
+
25
25
+
iyr:2025 eyr:1956 hcl:z pid:#1c42cc byr:2006
26
26
+
cid:327 hgt:141 ecl:#f2affc
27
27
+
28
28
+
hgt:178cm byr:1939 pid:595705064 ecl:oth
29
29
+
iyr:2020 eyr:2026
30
30
+
hcl:#888785
31
31
+
32
32
+
hgt:159cm iyr:2016
33
33
+
hcl:#efcc98 pid:139063139 byr:1980 ecl:brn
34
34
+
eyr:2020
35
35
+
36
36
+
pid:646870519 hgt:179cm eyr:2022 iyr:2011 hcl:#602927
37
37
+
ecl:brn
38
38
+
byr:1997
39
39
+
40
40
+
hgt:170cm hcl:#ceb3a1 iyr:2014 eyr:2023 ecl:oth pid:243067344 byr:1962
41
41
+
42
42
+
hcl:#866857
43
43
+
ecl:oth pid:704529614
44
44
+
byr:1941 cid:94
45
45
+
eyr:2026 hgt:180cm
46
46
+
iyr:2010
47
47
+
48
48
+
iyr:1924
49
49
+
pid:36196401
50
50
+
hgt:74cm eyr:1921
51
51
+
ecl:#3acf57 hcl:a4e4c0 byr:2024
52
52
+
cid:153
53
53
+
54
54
+
pid:770262094 hcl:#866857
55
55
+
eyr:2020 hgt:151cm
56
56
+
ecl:blu
57
57
+
iyr:2012
58
58
+
byr:2002
59
59
+
cid:242
60
60
+
61
61
+
pid:984364862 ecl:dne
62
62
+
iyr:2020
63
63
+
hgt:151 eyr:2023 cid:314 hcl:z byr:2012
64
64
+
65
65
+
hgt:178cm iyr:2020 hcl:#6b5442 ecl:grn cid:323 eyr:2030 byr:1925 pid:285882039
66
66
+
67
67
+
iyr:2019 pid:986123633
68
68
+
eyr:2024 byr:1990 hcl:#7d3b0c ecl:hzl hgt:192cm
69
69
+
70
70
+
hgt:90
71
71
+
byr:2025 iyr:1933
72
72
+
ecl:dne eyr:2040 pid:8194347544
73
73
+
74
74
+
hgt:163cm byr:1934 eyr:2026 ecl:amb hcl:#eec6fb cid:303 pid:721792159 iyr:2013
75
75
+
76
76
+
iyr:2019
77
77
+
byr:1920 hcl:#a97842
78
78
+
cid:186 eyr:2020
79
79
+
ecl:oth
80
80
+
hgt:167cm pid:217112082
81
81
+
82
82
+
pid:#55ce6b hcl:d30f6b eyr:2040 hgt:60cm ecl:dne iyr:1920
83
83
+
cid:107 byr:2029
84
84
+
85
85
+
ecl:amb eyr:2024 pid:644304174 hcl:#6b5442 iyr:2018
86
86
+
byr:1935
87
87
+
hgt:182cm
88
88
+
89
89
+
ecl:hzl pid:559383552
90
90
+
hcl:#ceb3a1 eyr:2024 hgt:161cm byr:1968 iyr:2010
91
91
+
92
92
+
iyr:2018
93
93
+
hcl:43fafb
94
94
+
hgt:65cm eyr:2027
95
95
+
byr:1937 pid:#4bff3e ecl:grt
96
96
+
97
97
+
eyr:2024
98
98
+
iyr:2014 cid:163 byr:1924 hcl:#18171d
99
99
+
hgt:166cm
100
100
+
101
101
+
eyr:2026 pid:955203781
102
102
+
iyr:2016 cid:52 hgt:167cm
103
103
+
ecl:grn byr:1963
104
104
+
105
105
+
pid:479898570 hgt:165cm eyr:2024 byr:1932
106
106
+
iyr:2010 ecl:grn
107
107
+
cid:88
108
108
+
hcl:#c0a76e
109
109
+
110
110
+
cid:241 hgt:178cm ecl:blu pid:069760797 hcl:#623a2f byr:1925 eyr:2029 iyr:2019
111
111
+
112
112
+
hgt:172cm eyr:2036
113
113
+
iyr:2016 pid:#98caec
114
114
+
ecl:dne hcl:z
115
115
+
116
116
+
ecl:#510672 iyr:1938 byr:2018 hgt:172in hcl:z cid:339 eyr:2039
117
117
+
pid:#6c1216
118
118
+
119
119
+
hcl:#efcc98
120
120
+
byr:1972 ecl:brn iyr:2011 pid:190911803 eyr:2025 hgt:171cm
121
121
+
122
122
+
pid:0636917222 byr:2009 hgt:96
123
123
+
hcl:z
124
124
+
iyr:1997 ecl:hzl eyr:2026
125
125
+
126
126
+
byr:1989 iyr:2011 pid:071588682 cid:155 ecl:grn
127
127
+
hcl:#ceb3a1 eyr:1955 hgt:170cm
128
128
+
129
129
+
cid:266 hcl:#a97842 byr:1964 hgt:175cm
130
130
+
iyr:2017 ecl:brn
131
131
+
132
132
+
pid:930133867 ecl:grn hcl:#733820 hgt:63in byr:1995
133
133
+
eyr:2021 iyr:2014
134
134
+
135
135
+
eyr:2025 pid:284329794
136
136
+
ecl:blu hcl:#ceb3a1 iyr:2012
137
137
+
hgt:65in byr:1961
138
138
+
139
139
+
iyr:2010 byr:1998
140
140
+
hgt:160cm
141
141
+
eyr:2029 hcl:#cfa07d
142
142
+
pid:253052921
143
143
+
ecl:amb cid:324
144
144
+
145
145
+
pid:026835791 byr:1999 eyr:2022 hgt:162cm
146
146
+
hcl:#7d3b0c ecl:brn iyr:2014
147
147
+
148
148
+
pid:672752198 eyr:2030 byr:1952 hgt:65in iyr:2016 ecl:amb
149
149
+
hcl:#cfa07d
150
150
+
151
151
+
hgt:193in
152
152
+
byr:2019 hcl:z pid:#cbc08c iyr:1951 ecl:#3e9f2f eyr:2002
153
153
+
154
154
+
ecl:utc pid:571477176
155
155
+
byr:2012 eyr:1929 cid:240
156
156
+
hgt:175in hcl:f4ef32
157
157
+
158
158
+
cid:93 hcl:#a5db2a
159
159
+
pid:274721479 byr:1940 eyr:2022 ecl:gry
160
160
+
hgt:157cm iyr:2012
161
161
+
162
162
+
pid:540858450 iyr:2014 cid:95 byr:1964
163
163
+
hgt:156cm hcl:#866857 ecl:brn eyr:2026
164
164
+
165
165
+
pid:532626994 byr:1939 iyr:2017
166
166
+
ecl:blu eyr:2026
167
167
+
hcl:#fffffd hgt:184cm
168
168
+
169
169
+
hgt:70 pid:404622083
170
170
+
iyr:2026
171
171
+
byr:2022 hcl:c1ba7f eyr:1979 ecl:lzr
172
172
+
173
173
+
pid:931910908
174
174
+
cid:177 hcl:#6b5442
175
175
+
ecl:gry hgt:184cm
176
176
+
byr:1963 eyr:2020
177
177
+
iyr:2014
178
178
+
179
179
+
iyr:2019 eyr:2022 hcl:#ceb3a1 hgt:191cm ecl:gry pid:954124659 cid:123 byr:1939
180
180
+
181
181
+
pid:411032659 byr:1950
182
182
+
hgt:153cm eyr:2020 iyr:2014 ecl:hzl
183
183
+
184
184
+
hgt:156cm eyr:2023 pid:29836124 byr:2017 hcl:56de83 ecl:zzz cid:179
185
185
+
iyr:2018
186
186
+
187
187
+
hcl:#866857 iyr:2014 hgt:190cm byr:1998 pid:565524574 eyr:2020
188
188
+
189
189
+
byr:1973 hcl:#888785 iyr:2016 eyr:2028 hgt:173cm ecl:blu
190
190
+
191
191
+
byr:1987
192
192
+
pid:028825120 hcl:#7d3b0c
193
193
+
eyr:2023 hgt:190cm ecl:oth iyr:2014
194
194
+
195
195
+
eyr:2036 pid:172661617
196
196
+
ecl:#ae607d byr:2017 hcl:z
197
197
+
hgt:82 cid:153
198
198
+
199
199
+
pid:202888577 eyr:2028 iyr:2013
200
200
+
byr:1933
201
201
+
hgt:68in cid:151 hcl:#b6652a ecl:brn
202
202
+
203
203
+
iyr:2020
204
204
+
ecl:amb eyr:2025 hcl:#a355be hgt:63in pid:146650894
205
205
+
206
206
+
iyr:2016 hgt:192cm pid:531372965 hcl:#fffffd
207
207
+
ecl:blu eyr:2025
208
208
+
209
209
+
eyr:2025 ecl:blu byr:1961 cid:224 iyr:2016 hcl:#6b5442 pid:368694418
210
210
+
hgt:169cm
211
211
+
212
212
+
pid:43707504 iyr:1945
213
213
+
ecl:grt byr:2010
214
214
+
eyr:2026 cid:273
215
215
+
hgt:165in hcl:z
216
216
+
217
217
+
hgt:159cm ecl:gry
218
218
+
hcl:#6b5442
219
219
+
eyr:2030 pid:915819272 iyr:2015
220
220
+
221
221
+
pid:808392314 ecl:gry cid:285 hcl:#efcc98 byr:1923 hgt:161cm iyr:1941 eyr:2020
222
222
+
223
223
+
iyr:2017
224
224
+
hgt:161cm
225
225
+
eyr:2025 hcl:#602927 ecl:oth pid:081917611 byr:1983
226
226
+
227
227
+
eyr:2028 pid:831032131 ecl:brn iyr:2013 hcl:#341e13 cid:198 byr:1991 hgt:67in
228
228
+
229
229
+
hgt:181cm cid:320 pid:032769757 ecl:grn hcl:#733820
230
230
+
eyr:2022 byr:1992
231
231
+
232
232
+
iyr:2010 cid:128 hgt:171cm byr:1932 pid:923377839 ecl:brn
233
233
+
hcl:#18171d eyr:2020
234
234
+
235
235
+
ecl:hzl iyr:2021 byr:2008 pid:569583509 hcl:f74823
236
236
+
hgt:188in
237
237
+
238
238
+
iyr:2016 hcl:z eyr:2021 ecl:#24ceee pid:349492243 hgt:67cm
239
239
+
cid:144 byr:2010
240
240
+
241
241
+
ecl:gry
242
242
+
byr:2029 hcl:3a0c30 hgt:163in eyr:1962
243
243
+
244
244
+
byr:1927 hgt:180
245
245
+
cid:87
246
246
+
ecl:#7ea777
247
247
+
hcl:#623a2f iyr:2024 pid:597098940 eyr:2027
248
248
+
249
249
+
cid:89 hgt:193cm hcl:#623a2f
250
250
+
iyr:2010 eyr:2026
251
251
+
pid:374988952 ecl:hzl byr:1973
252
252
+
253
253
+
eyr:2023 iyr:2013 byr:1977
254
254
+
cid:329 pid:711256829 ecl:grn hgt:154cm
255
255
+
hcl:#866857
256
256
+
257
257
+
pid:212535692 ecl:brn
258
258
+
hcl:#b6652a hgt:169cm eyr:2025 byr:1920 iyr:2019
259
259
+
260
260
+
ecl:blu
261
261
+
byr:1962
262
262
+
hgt:157cm iyr:2020 eyr:2027 pid:451039029
263
263
+
hcl:#6b5442
264
264
+
265
265
+
hgt:187cm pid:187808959 eyr:2026 iyr:2020
266
266
+
ecl:oth
267
267
+
byr:1956 hcl:#733820
268
268
+
269
269
+
byr:1959 hgt:160cm ecl:blu hcl:#6b5442
270
270
+
cid:193 eyr:2026
271
271
+
iyr:2014
272
272
+
pid:812555315
273
273
+
274
274
+
hgt:153cm iyr:2011
275
275
+
ecl:grn hcl:#ceb3a1
276
276
+
eyr:2026 byr:1966 pid:503356330
277
277
+
278
278
+
ecl:#95d8a9
279
279
+
eyr:2024 pid:382174744
280
280
+
iyr:2025
281
281
+
hgt:152 hcl:#888785 byr:2012
282
282
+
283
283
+
eyr:2028
284
284
+
iyr:2017 byr:1938
285
285
+
cid:279 hcl:#733820 ecl:amb pid:497365268 hgt:191cm
286
286
+
287
287
+
cid:335 byr:1982 hgt:171cm iyr:2013
288
288
+
ecl:hzl eyr:2030
289
289
+
hcl:#efcc98 pid:018900639
290
290
+
291
291
+
eyr:2029 hgt:175cm pid:530128340
292
292
+
hcl:#888785
293
293
+
ecl:gry
294
294
+
byr:1947 iyr:2019
295
295
+
296
296
+
hgt:183cm
297
297
+
hcl:#6b5442 eyr:2023 ecl:grn
298
298
+
byr:1934
299
299
+
300
300
+
hcl:f8ed45 cid:54 iyr:1997
301
301
+
hgt:69cm eyr:2037 ecl:gry
302
302
+
pid:184cm byr:2012
303
303
+
304
304
+
ecl:grn hcl:#733820 byr:1928 pid:002528194
305
305
+
iyr:2014 eyr:2021 hgt:157cm
306
306
+
307
307
+
hgt:163in
308
308
+
hcl:#c0946f byr:2018 eyr:2021
309
309
+
iyr:1955 ecl:#216920 pid:87155266
310
310
+
cid:298
311
311
+
312
312
+
eyr:2026 byr:1945 cid:161 iyr:2017 hgt:170cm hcl:#fffffd ecl:hzl pid:649441221
313
313
+
314
314
+
byr:1930
315
315
+
iyr:2014 pid:151910079 hcl:#18171d ecl:oth eyr:2029
316
316
+
hgt:169cm
317
317
+
318
318
+
ecl:blu byr:1950 iyr:2010 cid:260 hcl:#cfa07d
319
319
+
hgt:167cm
320
320
+
pid:910685738 eyr:2021
321
321
+
322
322
+
hgt:182cm byr:1993
323
323
+
eyr:2030 pid:073035999 hcl:#341e13
324
324
+
cid:117
325
325
+
326
326
+
byr:1981
327
327
+
hcl:#866857
328
328
+
eyr:2028 iyr:2012 ecl:blu pid:620133246 hgt:157cm
329
329
+
330
330
+
hgt:191cm
331
331
+
iyr:2010 pid:089995590 eyr:2023 ecl:amb byr:1986 hcl:#733820
332
332
+
333
333
+
iyr:2019 ecl:gry
334
334
+
hgt:165cm pid:910093364 hcl:#efcc98 byr:1997
335
335
+
eyr:2028
336
336
+
cid:153
337
337
+
338
338
+
hgt:83 hcl:174774 eyr:2032
339
339
+
ecl:xry iyr:2017 byr:1940
340
340
+
341
341
+
byr:1943
342
342
+
pid:980352645
343
343
+
iyr:2015 hgt:66 eyr:2023 hcl:#b6652a ecl:oth
344
344
+
345
345
+
ecl:amb byr:1980 hgt:164cm pid:775303596 hcl:#671bed iyr:2013 eyr:2030
346
346
+
347
347
+
hgt:173cm byr:1947 eyr:1947 iyr:1940 ecl:gmt hcl:7e515c
348
348
+
349
349
+
hcl:#b6652a
350
350
+
iyr:2012
351
351
+
eyr:2030 hgt:185cm ecl:grn
352
352
+
353
353
+
ecl:amb byr:1940 hcl:#2943a5 iyr:2015
354
354
+
hgt:185cm pid:931660417
355
355
+
eyr:2021
356
356
+
357
357
+
eyr:1957 hcl:#623a2f
358
358
+
ecl:grt hgt:62cm pid:#af106a iyr:2012
359
359
+
cid:59 byr:1985
360
360
+
361
361
+
ecl:amb eyr:2025
362
362
+
pid:351412754 iyr:2014 byr:1941 hcl:#6b5442 hgt:174cm
363
363
+
364
364
+
pid:5621200134 hcl:6ef9ba ecl:#ef68f5 eyr:1924
365
365
+
hgt:63cm cid:188 byr:2004
366
366
+
367
367
+
hcl:#a97842 byr:1976 eyr:2020 hgt:171cm pid:041926354 iyr:2019
368
368
+
369
369
+
cid:234
370
370
+
byr:2025 hcl:98619a pid:181cm eyr:1941
371
371
+
iyr:2021
372
372
+
hgt:167in ecl:#f5e651
373
373
+
374
374
+
hgt:73cm eyr:2028 byr:1985 iyr:1949 hcl:z ecl:utc cid:207 pid:#ee9f95
375
375
+
376
376
+
pid:179cm eyr:2030 hcl:b8e142
377
377
+
hgt:69cm
378
378
+
iyr:1933
379
379
+
byr:1934
380
380
+
ecl:grn
381
381
+
382
382
+
iyr:2028 eyr:1954 hgt:111 cid:180 pid:183391861
383
383
+
byr:2030 hcl:1fb30f ecl:#0d0160
384
384
+
385
385
+
ecl:#0b3b2d hgt:191cm byr:2023 pid:727024676 eyr:2025 hcl:#b6652a
386
386
+
387
387
+
hgt:66in
388
388
+
byr:1923 eyr:2023 ecl:gry
389
389
+
pid:454789451 iyr:2013 hcl:#cfa07d
390
390
+
391
391
+
eyr:2020
392
392
+
pid:339972685
393
393
+
ecl:amb
394
394
+
iyr:2017 byr:1926 hgt:154cm
395
395
+
hcl:#18171d
396
396
+
397
397
+
ecl:oth cid:302
398
398
+
byr:1946
399
399
+
hcl:#ceb3a1
400
400
+
pid:622779476 eyr:2024 iyr:2012 hgt:158cm
401
401
+
402
402
+
byr:2012
403
403
+
pid:748786877 hgt:135 iyr:2016 hcl:b6e962 ecl:gry eyr:2011
404
404
+
405
405
+
byr:1997
406
406
+
hcl:#a97842
407
407
+
eyr:2022 pid:325672898 ecl:amb hgt:190cm iyr:2010
408
408
+
409
409
+
cid:210 hcl:#c0946f byr:1957 eyr:2022
410
410
+
iyr:2020 pid:374646087 ecl:blu hgt:184cm
411
411
+
412
412
+
eyr:2029 ecl:#353e0f
413
413
+
pid:#66ec82
414
414
+
byr:2023 hcl:10d9d8 cid:271
415
415
+
416
416
+
pid:816485054
417
417
+
eyr:2019 ecl:grn
418
418
+
hcl:#efcc98 hgt:185cm iyr:2013
419
419
+
byr:2014
420
420
+
421
421
+
hcl:#866857 iyr:2014 byr:1953 eyr:2022 ecl:blu hgt:166cm
422
422
+
423
423
+
pid:162cm hgt:59cm iyr:1981
424
424
+
eyr:2025 byr:2009
425
425
+
ecl:gmt hcl:116742
426
426
+
427
427
+
eyr:2028 hgt:67cm hcl:3d1f34 byr:1963 pid:62859332
428
428
+
ecl:dne
429
429
+
iyr:2023
430
430
+
431
431
+
iyr:2013
432
432
+
pid:271450754 eyr:2016 hcl:e20882 cid:186 hgt:157in ecl:utc byr:2023
433
433
+
434
434
+
pid:702200026 eyr:1968 ecl:gmt hcl:#888785 iyr:2018 hgt:193in byr:1943
435
435
+
436
436
+
eyr:2025 byr:1989 ecl:amb hcl:#866857 cid:119
437
437
+
hgt:191cm
438
438
+
pid:556011434
439
439
+
440
440
+
hgt:178cm iyr:2013
441
441
+
pid:928476807
442
442
+
ecl:amb hcl:#623a2f byr:1996 eyr:2026
443
443
+
444
444
+
cid:222
445
445
+
pid:325218825 eyr:2021 byr:1983 hgt:155cm ecl:brn iyr:2011
446
446
+
hcl:#fffffd
447
447
+
448
448
+
pid:949344785 ecl:grn eyr:2025 cid:182 byr:1974 hcl:#ceb3a1
449
449
+
iyr:2011
450
450
+
451
451
+
cid:269 pid:669599426 hgt:176cm ecl:blu byr:1957
452
452
+
iyr:2015 hcl:#623a2f eyr:2025
453
453
+
454
454
+
eyr:2023 hcl:#888785
455
455
+
pid:178525132 iyr:2018 hgt:186cm
456
456
+
457
457
+
ecl:hzl
458
458
+
byr:1940 iyr:2013
459
459
+
hgt:185cm eyr:2028
460
460
+
hcl:#7c73a3
461
461
+
462
462
+
hcl:z
463
463
+
byr:2001 cid:292 ecl:#d56bbd pid:93473192
464
464
+
iyr:2003 hgt:150
465
465
+
eyr:1922
466
466
+
467
467
+
eyr:2021 pid:786485899
468
468
+
hgt:170cm hcl:#efcc98 byr:1955
469
469
+
iyr:2010 ecl:brn
470
470
+
471
471
+
hcl:#733820 ecl:hzl hgt:157cm byr:1944 eyr:2027 pid:906803629 iyr:2015
472
472
+
473
473
+
hgt:151cm ecl:blu iyr:2016
474
474
+
hcl:#02ffd7 byr:1995
475
475
+
pid:369315941 eyr:2026
476
476
+
477
477
+
cid:330 ecl:#18e883 eyr:2038
478
478
+
hcl:z iyr:1929
479
479
+
hgt:193 pid:33765426
480
480
+
481
481
+
pid:743094345 eyr:2027
482
482
+
iyr:1949 byr:1955
483
483
+
ecl:gry
484
484
+
hgt:160cm hcl:8dae67
485
485
+
486
486
+
cid:167 hcl:#18171d
487
487
+
iyr:2016 pid:214065645 byr:1942 eyr:2030 hgt:183cm ecl:hzl
488
488
+
489
489
+
ecl:brn hcl:#623a2f cid:171 byr:1971
490
490
+
iyr:2011 eyr:2028
491
491
+
pid:607344613
492
492
+
hgt:153cm
493
493
+
494
494
+
byr:1921 pid:677007802 hcl:#341e13 ecl:brn iyr:2012 hgt:188cm eyr:2028
495
495
+
496
496
+
hgt:162cm cid:319 hcl:z iyr:2025
497
497
+
byr:1989 eyr:1939 pid:67311222
498
498
+
ecl:utc
499
499
+
500
500
+
iyr:2014 eyr:2025 hgt:171cm
501
501
+
cid:302 byr:1997
502
502
+
hcl:z
503
503
+
ecl:amb pid:101363367
504
504
+
505
505
+
ecl:oth iyr:2010
506
506
+
cid:96 hgt:164cm hcl:4bc20a byr:1947
507
507
+
pid:166115442 eyr:2030
508
508
+
509
509
+
byr:1964
510
510
+
hcl:#6b5442 hgt:156cm eyr:2022 pid:426807062 ecl:brn cid:321 iyr:2012
511
511
+
512
512
+
byr:2012 hcl:#888785 cid:298 eyr:1920 ecl:zzz hgt:169cm pid:0660316558 iyr:2019
513
513
+
514
514
+
hcl:579266 byr:1931 pid:#aa5fd0 ecl:gry eyr:2017 hgt:60 iyr:1965
515
515
+
516
516
+
iyr:2011
517
517
+
pid:610896691 hcl:#733820
518
518
+
byr:1936
519
519
+
ecl:gry eyr:2021 hgt:161cm
520
520
+
521
521
+
pid:443246791 iyr:2015 hgt:158cm hcl:#18171d
522
522
+
byr:1928 ecl:brn cid:207
523
523
+
524
524
+
byr:1950 pid:644579904 hcl:#b6652a
525
525
+
eyr:2027 iyr:2017
526
526
+
ecl:brn hgt:171cm
527
527
+
528
528
+
iyr:2011 byr:1960
529
529
+
eyr:2023
530
530
+
hgt:171cm ecl:hzl
531
531
+
pid:331465564 cid:205 hcl:#18171d
532
532
+
533
533
+
hgt:61cm eyr:1987 ecl:#9f458c byr:2023 pid:162cm hcl:z iyr:1997
534
534
+
535
535
+
hcl:59e376 pid:065607649
536
536
+
iyr:2020
537
537
+
byr:2010 ecl:blu
538
538
+
539
539
+
pid:167cm byr:2022 hgt:150cm ecl:#06650a hcl:caa145 eyr:2032
540
540
+
iyr:2015
541
541
+
542
542
+
byr:1932
543
543
+
hcl:#419d73
544
544
+
cid:203 iyr:2017
545
545
+
pid:105921085
546
546
+
ecl:gry
547
547
+
548
548
+
pid:501585534 hcl:#418895
549
549
+
iyr:2018
550
550
+
hgt:157cm byr:1940 ecl:hzl eyr:2027
551
551
+
552
552
+
cid:220 hgt:171cm hcl:#623a2f
553
553
+
ecl:gry
554
554
+
iyr:2017
555
555
+
pid:085309709 eyr:2024 byr:1932
556
556
+
557
557
+
hcl:#733820 eyr:2028 cid:93
558
558
+
iyr:2017
559
559
+
byr:1974 hgt:163cm ecl:grn pid:630322998
560
560
+
561
561
+
hcl:#602927 cid:97 hgt:166cm eyr:2025
562
562
+
ecl:hzl iyr:2016 byr:1964 pid:355325363
563
563
+
564
564
+
iyr:2016 pid:402228657 hgt:174cm byr:1993
565
565
+
eyr:2020 hcl:#733820 ecl:grn
566
566
+
567
567
+
iyr:2020 hgt:171cm ecl:amb
568
568
+
hcl:#c0946f
569
569
+
byr:1939
570
570
+
cid:316 pid:782384470 eyr:2030
571
571
+
572
572
+
byr:1983 pid:839608616
573
573
+
eyr:2026
574
574
+
hcl:#ceb3a1 cid:242
575
575
+
hgt:192cm ecl:hzl
576
576
+
577
577
+
pid:701022732 byr:1931 ecl:amb
578
578
+
hgt:70in hcl:#341e13 eyr:2030 iyr:2013
579
579
+
580
580
+
eyr:2027
581
581
+
pid:740692321 byr:1940
582
582
+
hgt:179cm ecl:blu cid:153 iyr:2010
583
583
+
584
584
+
iyr:2024 hcl:z ecl:zzz hgt:181in pid:#c38620 eyr:1976 cid:97
585
585
+
byr:2029
586
586
+
587
587
+
byr:1999 ecl:lzr hcl:6f29a6 eyr:2023
588
588
+
iyr:2018 cid:209 pid:401606571 hgt:163cm
589
589
+
590
590
+
ecl:amb
591
591
+
byr:1996 hgt:181cm iyr:2018 hcl:#6b5442 pid:022285219 eyr:2021
592
592
+
593
593
+
cid:93 pid:807990476
594
594
+
hgt:61in eyr:2027 hcl:#cfa07d ecl:oth iyr:2017
595
595
+
596
596
+
hcl:#7d3b0c pid:225151503 iyr:2013 cid:68
597
597
+
eyr:2029
598
598
+
ecl:brn hgt:64in byr:1959
599
599
+
600
600
+
eyr:2028 hgt:172in
601
601
+
iyr:2014 byr:1950 pid:187cm hcl:z ecl:brn
602
602
+
603
603
+
byr:1982
604
604
+
pid:978263388 eyr:2021 hgt:175cm iyr:2014 ecl:brn hcl:#a97842
605
605
+
606
606
+
hgt:162cm
607
607
+
eyr:2025
608
608
+
pid:6533951177 byr:1993 iyr:2011 hcl:#c0946f ecl:hzl
609
609
+
610
610
+
pid:182cm
611
611
+
iyr:2025 eyr:2035 hgt:59in
612
612
+
ecl:#799f29 hcl:z
613
613
+
byr:1920 cid:202
614
614
+
615
615
+
hcl:#733820
616
616
+
eyr:2022 hgt:185cm byr:1989 pid:195276207
617
617
+
ecl:blu iyr:2017
618
618
+
619
619
+
hcl:#7d3b0c
620
620
+
cid:257 ecl:gry
621
621
+
pid:123065639 byr:1951 iyr:2013
622
622
+
623
623
+
eyr:2039 ecl:#a82e90 byr:1927 pid:719738468 hgt:73cm
624
624
+
625
625
+
hcl:605223
626
626
+
hgt:162cm pid:50424035
627
627
+
ecl:oth cid:343 byr:2025 iyr:2023 eyr:2024
628
628
+
629
629
+
hcl:699116 iyr:2001
630
630
+
eyr:2022
631
631
+
byr:2013
632
632
+
hgt:171cm pid:8900968325
633
633
+
634
634
+
hcl:#efcc98 eyr:2029 ecl:grn pid:568953221
635
635
+
byr:1986
636
636
+
hgt:178cm
637
637
+
iyr:2020
638
638
+
639
639
+
pid:452235579 byr:1932
640
640
+
ecl:grn
641
641
+
iyr:2010 hgt:189cm eyr:2028
642
642
+
hcl:#602927 cid:258
643
643
+
644
644
+
ecl:xry iyr:2009 cid:334 pid:189cm
645
645
+
eyr:2032 byr:2005 hgt:172in hcl:z
646
646
+
647
647
+
hgt:159cm hcl:z pid:166cm
648
648
+
ecl:oth eyr:2026 iyr:2020
649
649
+
650
650
+
eyr:2023 ecl:blu byr:1935 iyr:2015
651
651
+
hcl:#866857 pid:542611829
652
652
+
hgt:168cm
653
653
+
654
654
+
pid:#ec3d53
655
655
+
hcl:#ceb3a1
656
656
+
byr:1999 eyr:2024
657
657
+
hgt:188cm ecl:oth iyr:2018
658
658
+
659
659
+
byr:2003 hgt:167
660
660
+
hcl:486800
661
661
+
ecl:#29bdd6 eyr:2037 cid:169 iyr:2010
662
662
+
663
663
+
byr:1983
664
664
+
eyr:2026 ecl:gry
665
665
+
pid:203934984
666
666
+
hgt:181cm iyr:2020 hcl:#a97842 cid:184
667
667
+
668
668
+
hgt:180cm
669
669
+
iyr:1934 eyr:2038 hcl:#a97842 ecl:brn byr:1942 pid:427001597
670
670
+
671
671
+
hcl:#18171d byr:1988
672
672
+
cid:267 hgt:188cm
673
673
+
ecl:amb
674
674
+
eyr:2028 pid:696617232
675
675
+
676
676
+
eyr:2024 hcl:#cfa07d
677
677
+
iyr:2013 pid:176cm hgt:189cm byr:1990
678
678
+
ecl:gry
679
679
+
680
680
+
eyr:2025 iyr:2015 hgt:153cm hcl:#ceb3a1 ecl:grn pid:686467422 byr:1961 cid:282
681
681
+
682
682
+
byr:1931 hgt:185cm ecl:oth
683
683
+
eyr:2022
684
684
+
pid:561083684 hcl:#efcc98
685
685
+
iyr:2012
686
686
+
687
687
+
byr:1948 cid:327 hgt:151cm
688
688
+
iyr:2016 hcl:#733820 ecl:oth pid:341978822
689
689
+
690
690
+
hcl:#ceb3a1
691
691
+
byr:1978 iyr:2020 hgt:172cm
692
692
+
eyr:2022 ecl:oth pid:093317990
693
693
+
694
694
+
eyr:2029
695
695
+
pid:096891409 iyr:2018
696
696
+
hcl:#d82822 hgt:174cm ecl:hzl
697
697
+
byr:1988
698
698
+
699
699
+
hgt:170cm iyr:2018 pid:588142771 eyr:2022 hcl:#733820
700
700
+
cid:273 byr:1940 ecl:#a608fe
701
701
+
702
702
+
iyr:2029 eyr:1980 hcl:#341e13 byr:2027 ecl:grt
703
703
+
pid:443809337 hgt:180cm
704
704
+
cid:205
705
705
+
706
706
+
ecl:#f89df0 hgt:144 hcl:2f26ab iyr:1982 pid:#3b43c1 eyr:2032 byr:2012
707
707
+
708
708
+
ecl:hzl byr:1971
709
709
+
pid:030850749
710
710
+
hgt:170in
711
711
+
hcl:#ceb3a1 eyr:2023 iyr:2018
712
712
+
713
713
+
byr:1940 iyr:2020
714
714
+
eyr:2026 pid:437820254
715
715
+
hgt:179cm ecl:gry
716
716
+
717
717
+
byr:2028
718
718
+
eyr:1986 hcl:z
719
719
+
hgt:185in pid:773739744 ecl:dne iyr:2020
720
720
+
721
721
+
hcl:#a97842
722
722
+
hgt:186cm cid:64 iyr:2016
723
723
+
byr:1947 eyr:2021
724
724
+
725
725
+
byr:1988 hgt:160cm eyr:2023 hcl:#866857 pid:788805179 iyr:2022 ecl:amb
726
726
+
727
727
+
hgt:164cm byr:1996 cid:338 hcl:#efcc98
728
728
+
eyr:2029 pid:208596014 ecl:blu
729
729
+
730
730
+
pid:357680064 byr:1960 eyr:2029 ecl:gry hgt:192cm hcl:#c0946f
731
731
+
732
732
+
ecl:#d32320
733
733
+
hgt:167in pid:19531341
734
734
+
hcl:z
735
735
+
cid:346 iyr:2024 byr:2006 eyr:2035
736
736
+
737
737
+
pid:843729120 byr:1987 hgt:185cm eyr:2022
738
738
+
ecl:amb
739
739
+
iyr:2012 hcl:#c0946f
740
740
+
741
741
+
eyr:2020 byr:1961 iyr:2011
742
742
+
hgt:162cm cid:54 pid:891397982 ecl:brn
743
743
+
744
744
+
ecl:zzz byr:2019 iyr:2015 eyr:2028 hcl:43d56d
745
745
+
hgt:152cm
746
746
+
pid:182cm
747
747
+
748
748
+
hcl:#18171d byr:1979 hgt:174cm
749
749
+
iyr:2013 cid:228 eyr:2022 ecl:amb pid:82422450
750
750
+
751
751
+
cid:156 iyr:2017
752
752
+
byr:1924
753
753
+
hcl:#b6652a ecl:gry hgt:184cm eyr:2027 pid:451347151
754
754
+
755
755
+
pid:850192502 hgt:65in
756
756
+
iyr:2011 hcl:#7d3b0c
757
757
+
eyr:2023 ecl:gry
758
758
+
759
759
+
ecl:amb hgt:181cm iyr:2017 pid:233345009 byr:1934
760
760
+
hcl:#341e13
761
761
+
eyr:2024 cid:199
762
762
+
763
763
+
eyr:2026 pid:#4cb480
764
764
+
iyr:1958 hgt:176cm ecl:dne hcl:z
765
765
+
766
766
+
ecl:grn eyr:2027 hgt:178cm byr:1994 hcl:#341e13
767
767
+
iyr:2016 pid:790075315
768
768
+
769
769
+
pid:140922484
770
770
+
byr:1958
771
771
+
eyr:2025
772
772
+
iyr:2019 ecl:brn hgt:157cm hcl:#623a2f
773
773
+
774
774
+
pid:466785488 hgt:160cm hcl:#cfa07d
775
775
+
byr:1947
776
776
+
iyr:2010
777
777
+
cid:198 eyr:2020 ecl:hzl
778
778
+
779
779
+
ecl:oth
780
780
+
eyr:2022 byr:1963
781
781
+
hcl:#fffffd iyr:2017
782
782
+
hgt:171cm pid:463249115
783
783
+
784
784
+
hgt:73cm byr:1968
785
785
+
pid:470317690 ecl:blu
786
786
+
iyr:2015 hcl:#c0946f cid:54 eyr:2029
787
787
+
788
788
+
hgt:162cm iyr:2014
789
789
+
byr:1951 hcl:#b6652a eyr:2029 ecl:blu
790
790
+
791
791
+
ecl:oth
792
792
+
hgt:176cm hcl:#888785 byr:1963
793
793
+
iyr:2017 pid:453133253 eyr:2025
794
794
+
795
795
+
hcl:#efcc98
796
796
+
eyr:2024 iyr:2020 cid:330 byr:1950 pid:937122408 ecl:gry hgt:162cm
797
797
+
798
798
+
hgt:168cm
799
799
+
pid:745867335
800
800
+
cid:165 hcl:#c0946f iyr:2018 ecl:grt eyr:2030
801
801
+
byr:1932
802
802
+
803
803
+
byr:1949 pid:116003343
804
804
+
hcl:#c0946f hgt:178cm eyr:2028 iyr:2020 cid:220
805
805
+
ecl:hzl
806
806
+
807
807
+
iyr:2013
808
808
+
cid:314 pid:186cm hgt:74cm eyr:1973 ecl:hzl byr:2007
809
809
+
hcl:180e0c
810
810
+
811
811
+
pid:486330019
812
812
+
byr:1999 ecl:oth hgt:154cm iyr:2019 eyr:2026
813
813
+
hcl:#efcc98
814
814
+
815
815
+
eyr:2030 iyr:2018 hcl:#18171d byr:1950
816
816
+
pid:648616604 hgt:160cm ecl:gry
817
817
+
818
818
+
hgt:173cm
819
819
+
ecl:oth byr:1993 eyr:2029 hcl:#fffffd iyr:2010 pid:317451887
820
820
+
821
821
+
ecl:brn hgt:157cm
822
822
+
byr:1963 eyr:2023 pid:005387570 hcl:#866857 iyr:2012
823
823
+
824
824
+
pid:419695212 eyr:2020 byr:1957 cid:198 iyr:2015 hcl:#888785 hgt:168cm ecl:amb
825
825
+
826
826
+
ecl:amb
827
827
+
iyr:2017 eyr:2024 pid:039995171 hcl:#a97842
828
828
+
hgt:153cm byr:1983
829
829
+
830
830
+
byr:1979 eyr:2021 iyr:2011 hgt:157cm ecl:blu pid:110855542 hcl:#c0946f
831
831
+
832
832
+
ecl:blu pid:948753945 eyr:2029 iyr:2012 hcl:#ceb3a1
833
833
+
hgt:164cm byr:1988
834
834
+
835
835
+
iyr:2010
836
836
+
eyr:2032 hcl:#fffffd pid:#175129 hgt:184cm
837
837
+
ecl:hzl byr:1985
838
838
+
839
839
+
hgt:189cm ecl:blu byr:1936 eyr:2027 hcl:#733820
840
840
+
pid:728752361 iyr:2011
841
841
+
842
842
+
hcl:#733820 ecl:blu eyr:2023 hgt:172cm iyr:2017
843
843
+
pid:013415387 byr:1947
844
844
+
845
845
+
byr:2012 iyr:2017 pid:#424ae4
846
846
+
cid:172 hgt:166cm eyr:2022
847
847
+
hcl:b1319b ecl:#6635d8
848
848
+
849
849
+
eyr:2030
850
850
+
iyr:1928 hgt:185cm ecl:brn pid:#ac5a90 byr:1984 hcl:ac8f43
851
851
+
852
852
+
eyr:2027
853
853
+
ecl:amb iyr:2014 hcl:#fffffd
854
854
+
pid:838758900
855
855
+
hgt:177cm byr:1942
856
856
+
857
857
+
cid:166 iyr:2020 ecl:lzr hgt:70cm eyr:2040 byr:2004 hcl:#733820
858
858
+
859
859
+
eyr:2028 ecl:grn byr:2016 cid:61 iyr:2010
860
860
+
hcl:#cfa07d
861
861
+
hgt:155in
862
862
+
pid:9594283803
863
863
+
864
864
+
ecl:gmt pid:984675198
865
865
+
byr:1997 hgt:128 eyr:2037 hcl:#b6652a cid:299
866
866
+
867
867
+
iyr:2015 pid:733864914 eyr:2021 ecl:amb
868
868
+
byr:1971 cid:280
869
869
+
hgt:181cm hcl:#054593
870
870
+
871
871
+
ecl:hzl hcl:#cfa07d eyr:2022 pid:832736421
872
872
+
byr:1958
873
873
+
iyr:2010
874
874
+
cid:274 hgt:152cm
875
875
+
876
876
+
eyr:2020 hcl:#6b5442 cid:223 hgt:155cm byr:1989 ecl:oth
877
877
+
iyr:2011 pid:549182194
878
878
+
879
879
+
iyr:2020 hcl:#cfa07d
880
880
+
eyr:2027 pid:093361240 byr:1941 cid:271 hgt:178cm ecl:brn
881
881
+
882
882
+
ecl:blu cid:290 eyr:2027
883
883
+
hgt:192cm byr:1945 hcl:#7d3b0c iyr:2020 pid:910713369
884
884
+
885
885
+
byr:1991 hcl:#ceb3a1 ecl:xry hgt:159cm pid:9496171384
886
886
+
eyr:2030 iyr:2016
887
887
+
888
888
+
eyr:2020 pid:812617809 hcl:#7d3b0c
889
889
+
byr:1970 ecl:gmt
890
890
+
iyr:1971 hgt:157in
891
891
+
892
892
+
pid:596027311 hcl:#866857 hgt:169cm byr:1945 eyr:2030 ecl:oth
893
893
+
iyr:2010
894
894
+
895
895
+
hgt:176cm
896
896
+
pid:213213359 byr:2012 hcl:be7b13 eyr:1971 ecl:gmt iyr:2011
897
897
+
cid:64
898
898
+
899
899
+
pid:27107946 ecl:utc hgt:66cm byr:1928 eyr:2040
900
900
+
cid:87
901
901
+
902
902
+
byr:1959 ecl:blu hcl:4e023b pid:9017609497 eyr:2023 hgt:68 iyr:2029
903
903
+
904
904
+
hgt:164cm eyr:2023 byr:2008 ecl:grn pid:420168481 hcl:#b6652a iyr:2012
905
905
+
906
906
+
eyr:1977 byr:1934
907
907
+
ecl:brn cid:163
908
908
+
iyr:2018 pid:2863284754
909
909
+
hgt:150in hcl:#623a2f
910
910
+
911
911
+
ecl:hzl eyr:2031 cid:145 hgt:186cm hcl:#cfa07d
912
912
+
byr:1941 iyr:2010 pid:722056139
913
913
+
914
914
+
ecl:blu eyr:2027
915
915
+
hcl:#888785 iyr:2018 byr:1977 cid:278 hgt:156cm
916
916
+
917
917
+
eyr:2039 hgt:82 byr:2007
918
918
+
hcl:z iyr:2021 ecl:dne cid:191
919
919
+
pid:#1cf69f
920
920
+
921
921
+
pid:183cm cid:111
922
922
+
hgt:66cm
923
923
+
iyr:1950
924
924
+
eyr:1947 ecl:#016f6a
925
925
+
926
926
+
ecl:hzl byr:1957 iyr:2015 hgt:186cm eyr:2029 hcl:#701e04 cid:149 pid:827898914
927
927
+
928
928
+
cid:214 pid:785688542 hgt:189cm byr:1974 ecl:brn
929
929
+
hcl:#18171d
930
930
+
eyr:2030
931
931
+
932
932
+
hcl:#866857
933
933
+
cid:241 ecl:grn pid:389488422 byr:1959 iyr:2015 hgt:67in
934
934
+
eyr:2027
935
935
+
936
936
+
hcl:#6b5442 iyr:2011 hgt:193cm
937
937
+
eyr:2026 byr:1952
938
938
+
pid:033382338
939
939
+
ecl:grn
940
940
+
941
941
+
iyr:2020 hgt:166cm byr:1927
942
942
+
eyr:2029 ecl:hzl
943
943
+
pid:927006613 hcl:#623a2f
944
944
+
945
945
+
ecl:gry pid:640783974
946
946
+
hgt:71in byr:1945 iyr:2019 cid:268 hcl:#b6652a
947
947
+
eyr:2025
948
948
+
949
949
+
hcl:#733820 hgt:163cm
950
950
+
pid:1285584293 byr:1967 ecl:oth
951
951
+
cid:309 iyr:2020 eyr:2031
952
952
+
953
953
+
pid:910349085 iyr:2011 hcl:#623a2f byr:1956
954
954
+
eyr:2025 ecl:gry
955
955
+
hgt:182cm
956
956
+
957
957
+
pid:018283044 hcl:#602927 hgt:153cm ecl:gry iyr:2020
958
958
+
eyr:2024
959
959
+
byr:1990
960
960
+
961
961
+
hgt:184cm hcl:#866857 ecl:oth
962
962
+
eyr:2023 pid:405733635 cid:205
963
963
+
byr:1987 iyr:2012
964
964
+
965
965
+
hgt:167cm
966
966
+
iyr:2015 ecl:brn
967
967
+
eyr:2025
968
968
+
hcl:#18171d cid:313 byr:1960
969
969
+
970
970
+
hgt:165cm byr:1933
971
971
+
iyr:2014
972
972
+
cid:203
973
973
+
hcl:#1cdbb3
974
974
+
ecl:hzl eyr:2027 pid:747009469
975
975
+
976
976
+
hgt:169cm ecl:gry iyr:2014
977
977
+
byr:1966 pid:621876532 hcl:#efcc98
978
978
+
979
979
+
cid:342 eyr:2029 hcl:#a97842 byr:1970
980
980
+
ecl:oth
981
981
+
pid:137287449 hgt:180cm
982
982
+
iyr:2011
983
983
+
984
984
+
hcl:#cfa07d byr:1985 hgt:183cm ecl:grn
985
985
+
iyr:2013 eyr:2022
986
986
+
987
987
+
iyr:2023
988
988
+
pid:164cm hcl:z byr:1966
989
989
+
eyr:2021 ecl:utc
990
990
+
991
991
+
hcl:#fffffd cid:60
992
992
+
byr:1973
993
993
+
pid:324648387
994
994
+
hgt:177cm eyr:2022 iyr:2010
995
995
+
ecl:oth
996
996
+
997
997
+
pid:632056596 hcl:#efcc98
998
998
+
hgt:73in ecl:brn byr:1928 iyr:2017
999
999
+
eyr:2023
1000
1000
+
1001
1001
+
cid:144 ecl:amb eyr:2035 byr:1943 hgt:180cm
1002
1002
+
iyr:2012
1003
1003
+
pid:155cm
1004
1004
+
1005
1005
+
hcl:#6b5442
1006
1006
+
pid:927492391
1007
1007
+
eyr:2023 hgt:172cm byr:1958 cid:92 ecl:gry iyr:2019
1008
1008
+
1009
1009
+
iyr:2020 cid:82
1010
1010
+
hgt:193in hcl:#b6652a
1011
1011
+
ecl:grn eyr:2034 byr:2026
1012
1012
+
1013
1013
+
iyr:1922 hcl:245cb3 byr:2015
1014
1014
+
pid:151cm
1015
1015
+
eyr:2040
1016
1016
+
ecl:lzr cid:136 hgt:101
1017
1017
+
1018
1018
+
byr:2025
1019
1019
+
eyr:2029
1020
1020
+
hgt:193in
1021
1021
+
cid:308
1022
1022
+
ecl:gry iyr:2028 pid:9335153289
1023
1023
+
hcl:z
1024
1024
+
1025
1025
+
eyr:2030 hgt:163cm iyr:2014
1026
1026
+
pid:147768826 ecl:blu byr:1922 hcl:#ceb3a1 cid:169
1027
1027
+
1028
1028
+
ecl:blu byr:2002 eyr:2028 pid:998185490 cid:165 iyr:2020
1029
1029
+
hgt:188cm hcl:#c0946f
+13
input/day_04_sample
reviewed
···
1
1
+
ecl:gry pid:860033327 eyr:2020 hcl:#fffffd
2
2
+
byr:1937 iyr:2017 cid:147 hgt:183cm
3
3
+
4
4
+
iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884
5
5
+
hcl:#cfa07d byr:1929
6
6
+
7
7
+
hcl:#ae17e1 iyr:2013
8
8
+
eyr:2024
9
9
+
ecl:brn pid:760753108 byr:1931
10
10
+
hgt:179cm
11
11
+
12
12
+
hcl:#cfa07d eyr:2025 pid:166559648
13
13
+
iyr:2011 ecl:brn hgt:59in
+92
src/day_04.rs
reviewed
···
1
1
+
extern crate regex;
2
2
+
3
3
+
use regex::Regex;
4
4
+
5
5
+
pub fn validate_passports(input: &str) -> usize {
6
6
+
let passport_fields = parse_input(input);
7
7
+
8
8
+
let required = vec![Fields::BirthYear, Fields::IssueYear, Fields::ExpirationYear, Fields::Height, Fields::HairColor, Fields::EyeColor, Fields::PassportID];
9
9
+
10
10
+
let mut valids = 0;
11
11
+
12
12
+
for passport in passport_fields.into_iter() {
13
13
+
let fields_count = passport.into_iter()
14
14
+
.filter(|field| required.contains(field))
15
15
+
.count();
16
16
+
17
17
+
if fields_count > 6 {
18
18
+
valids += 1
19
19
+
}
20
20
+
}
21
21
+
22
22
+
valids
23
23
+
}
24
24
+
25
25
+
#[derive(Debug, Clone, PartialEq)]
26
26
+
pub enum Fields {
27
27
+
BirthYear,
28
28
+
IssueYear,
29
29
+
ExpirationYear,
30
30
+
Height,
31
31
+
HairColor,
32
32
+
EyeColor,
33
33
+
PassportID,
34
34
+
CountryID,
35
35
+
}
36
36
+
37
37
+
fn parse_input(input: &str) -> Vec<Vec<Fields>> {
38
38
+
let mut out = vec![];
39
39
+
let re = Regex::new(r"(\w{3}):(\S*)").unwrap();
40
40
+
41
41
+
let mut data: Vec<Fields> = vec![];
42
42
+
for row in input.lines() {
43
43
+
if row == "" {
44
44
+
out.push(data.to_vec());
45
45
+
data = vec![];
46
46
+
continue;
47
47
+
}
48
48
+
49
49
+
for cap in re.captures_iter(row) {
50
50
+
let field = match &cap[1] {
51
51
+
"byr" => Fields::BirthYear,
52
52
+
"iyr" => Fields::IssueYear,
53
53
+
"eyr" => Fields::ExpirationYear,
54
54
+
"hgt" => Fields::Height,
55
55
+
"hcl" => Fields::HairColor,
56
56
+
"ecl" => Fields::EyeColor,
57
57
+
"pid" => Fields::PassportID,
58
58
+
"cid" => Fields::CountryID,
59
59
+
_ => { continue; }
60
60
+
};
61
61
+
62
62
+
data.push(field);
63
63
+
}
64
64
+
}
65
65
+
out.push(data.to_vec());
66
66
+
67
67
+
out
68
68
+
}
69
69
+
70
70
+
#[cfg(test)]
71
71
+
mod tests {
72
72
+
use super::{validate_passports};
73
73
+
use std::fs::read_to_string;
74
74
+
75
75
+
fn get_sample_input() -> String {
76
76
+
read_to_string("input/day_04_sample").unwrap()
77
77
+
}
78
78
+
79
79
+
fn get_input() -> String {
80
80
+
read_to_string("input/day_04").unwrap()
81
81
+
}
82
82
+
83
83
+
#[test]
84
84
+
fn sample() {
85
85
+
assert_eq!(2, validate_passports(&get_sample_input()));
86
86
+
}
87
87
+
88
88
+
#[test]
89
89
+
fn first_challenge() {
90
90
+
assert_eq!(210, validate_passports(&get_input()));
91
91
+
}
92
92
+
}
+1
src/lib.rs
reviewed
···
1
1
pub mod day_01;
2
2
pub mod day_02;
3
3
pub mod day_03;
4
4
+
pub mod day_04;