diff options
-rw-r--r-- | common.zig | 2 | ||||
-rw-r--r-- | day3.zig | 6 | ||||
-rw-r--r-- | day4.zig | 272 |
3 files changed, 276 insertions, 4 deletions
@@ -31,7 +31,7 @@ pub const Setup = struct { var f = try std.fs.cwd().openFile(file, .{}); defer f.close(); - var c = try f.readToEndAlloc(res.a, std.math.maxInt(u32)); + const c = try f.readToEndAlloc(res.a, std.math.maxInt(u32)); res.input = c; return res; } @@ -17,7 +17,7 @@ const Grid = struct { span_ix: []usize, // grid mapping of index into spans list fn init(a: std.mem.Allocator, input: []const u8) !Grid { - var spix = try a.alloc(usize, input.len); + const spix = try a.alloc(usize, input.len); @memset(spix, std.math.maxInt(usize)); errdefer a.free(spix); @@ -173,10 +173,10 @@ fn solve_pt2(a: std.mem.Allocator, input: []const u8) !u32 { } var ki = spixes.keyIterator(); if (ki.next()) |first| { - var m = allSpans.items[first.*]; + const m = allSpans.items[first.*]; //std.log.warn("span val m{}", .{m}); if (ki.next()) |second| { - var m2 = allSpans.items[second.*]; + const m2 = allSpans.items[second.*]; //std.log.warn("span val m2{}", .{m2}); // _EXACTLY_ two gears! if (ki.next() == null) { diff --git a/day4.zig b/day4.zig new file mode 100644 index 0000000..d4d7d0b --- /dev/null +++ b/day4.zig @@ -0,0 +1,272 @@ +const std = @import("std"); + +pub fn main() !void { + try std.fmt.format(std.io.getStdOut().writer(), "day4 pt1: {}\n", .{try solve_pt1(std.heap.page_allocator, puzzle_input)}); +} + +fn solve_pt1(a: std.mem.Allocator, input: []const u8) !u32 { + var lines = std.mem.splitScalar(u8, input, '\n'); + var sum: u32 = 0; + while (lines.next()) |line| { + var s1 = std.mem.splitScalar(u8, line, ':'); + const card_num_str = s1.first(); + _ = card_num_str; // I guess we'll use this next round :) + const card_str = s1.next() orelse return error.NoCard; + var s2 = std.mem.splitScalar(u8, card_str, '|'); + const winning_nos = try read_nums(a, s2.first()); + defer a.free(winning_nos); + const your_nos = try read_nums(a, s2.next() orelse return error.NoNos); + defer a.free(your_nos); + const inter = try intersection(a, winning_nos, your_nos); + defer a.free(inter); + if (inter.len > 0) { + sum += std.math.pow(u32, 2, @intCast(inter.len - 1)); + } + } + return sum; +} + +fn read_nums(a: std.mem.Allocator, input: []const u8) ![]const u32 { + var res = std.ArrayList(u32).init(a); + errdefer res.deinit(); + var toks = std.mem.tokenizeScalar(u8, input, ' '); + while (toks.next()) |tok| { + try res.append(try std.fmt.parseInt(u32, tok, 10)); + } + return try res.toOwnedSlice(); +} + +// Gets unique values which are present in both inputs. +// caller should free the result +fn intersection(a: std.mem.Allocator, first: []const u32, second: []const u32) ![]const u32 { + var res = std.ArrayList(u32).init(a); + errdefer res.deinit(); + for (first) |x| { + for (second) |y| { + if (x == y) { + for (res.items) |e| { + if (e == x) break; + } else { + try res.append(x); + } + } + } + } + return try res.toOwnedSlice(); +} + +test "pt1" { + try std.testing.expectEqual(@as(u32, 13), try solve_pt1(std.testing.allocator, test_input)); +} +const test_input = + \\Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 + \\Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 + \\Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 + \\Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 + \\Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 + \\Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 +; + +const puzzle_input = + \\Card 1: 91 73 74 57 24 99 31 70 60 8 | 89 70 43 24 62 30 91 87 60 57 90 2 27 3 31 25 39 83 64 73 99 8 74 37 49 + \\Card 2: 92 38 67 81 28 16 82 30 11 45 | 92 84 67 40 75 44 57 89 11 28 99 81 83 14 77 51 61 27 16 45 30 63 53 38 82 + \\Card 3: 16 21 36 18 9 5 27 43 76 52 | 75 44 11 20 54 33 40 18 22 13 85 17 51 98 77 12 73 58 84 64 76 90 53 95 6 + \\Card 4: 2 4 14 88 19 99 3 84 1 77 | 61 59 53 88 31 72 62 11 9 50 46 42 66 79 55 87 30 63 37 69 95 83 15 21 35 + \\Card 5: 58 85 47 8 52 68 81 16 56 64 | 79 54 88 17 74 89 51 40 98 18 69 48 1 55 26 13 87 45 78 33 65 83 67 36 37 + \\Card 6: 31 46 60 12 68 44 5 90 2 15 | 12 81 36 24 48 68 37 27 97 44 85 5 42 59 52 47 2 90 3 63 26 28 31 87 53 + \\Card 7: 95 84 91 68 23 15 76 80 30 73 | 55 70 60 43 18 73 30 92 15 9 23 39 95 17 98 33 25 91 80 68 1 76 61 84 35 + \\Card 8: 79 7 17 68 19 11 70 51 78 24 | 56 30 34 88 74 65 55 60 61 51 42 78 12 52 26 18 49 38 14 10 97 50 85 33 66 + \\Card 9: 18 30 91 65 25 22 17 12 99 5 | 26 9 30 23 44 64 91 95 36 34 8 18 4 22 81 99 94 15 59 70 19 65 25 28 63 + \\Card 10: 53 3 8 32 86 87 77 78 59 25 | 72 42 17 69 63 67 82 84 56 22 32 75 33 14 77 61 95 92 57 59 16 20 90 76 68 + \\Card 11: 63 44 6 45 66 11 93 48 18 74 | 23 48 66 21 55 97 89 11 41 44 75 18 6 49 91 85 40 53 95 74 37 93 36 63 45 + \\Card 12: 56 74 43 42 93 31 2 79 67 48 | 89 86 73 35 6 84 47 61 62 2 65 80 81 14 19 58 24 77 39 26 71 36 5 34 78 + \\Card 13: 51 89 44 93 90 17 61 32 95 53 | 28 22 14 12 76 36 98 33 50 56 61 40 13 21 5 54 87 43 67 47 46 83 23 90 44 + \\Card 14: 99 25 85 51 3 27 26 16 73 89 | 8 17 20 33 65 38 70 9 7 53 86 96 35 28 99 4 40 66 76 31 95 57 49 69 36 + \\Card 15: 42 95 30 60 70 67 59 61 5 71 | 66 5 41 65 74 47 24 86 8 37 68 54 12 1 44 75 48 90 16 30 99 96 98 70 21 + \\Card 16: 95 44 98 40 18 81 45 70 37 94 | 59 27 28 93 6 63 33 82 94 61 16 53 47 85 67 54 10 17 90 20 31 7 77 88 11 + \\Card 17: 10 7 77 80 92 29 64 99 18 14 | 70 23 7 99 72 49 12 52 73 94 4 91 57 78 97 16 50 26 68 89 80 20 15 87 64 + \\Card 18: 8 77 62 36 99 30 92 86 81 91 | 49 14 99 6 77 47 44 84 98 57 48 33 9 80 93 66 10 12 32 97 40 71 18 26 65 + \\Card 19: 87 38 27 92 35 94 88 75 37 74 | 89 7 24 54 9 98 13 42 32 60 8 6 90 35 75 18 68 96 80 59 44 85 95 21 17 + \\Card 20: 21 59 31 90 66 42 7 24 64 41 | 47 87 51 38 6 34 74 22 82 44 14 71 45 11 81 15 27 83 63 46 79 92 56 80 39 + \\Card 21: 67 34 30 82 42 3 8 77 61 31 | 38 92 87 84 28 6 66 25 7 51 29 75 85 80 50 71 13 69 31 74 20 62 88 64 45 + \\Card 22: 67 60 88 39 65 12 75 16 26 41 | 56 91 42 45 24 33 84 64 44 73 83 13 90 14 30 6 1 72 15 4 7 49 82 71 94 + \\Card 23: 60 27 1 46 47 61 98 11 95 40 | 40 72 32 81 46 12 1 34 44 91 11 27 94 61 54 80 24 47 95 18 67 98 60 19 99 + \\Card 24: 87 17 74 69 68 50 58 33 23 73 | 29 33 58 51 74 69 7 22 9 73 87 50 24 76 15 10 23 68 59 5 78 56 17 43 13 + \\Card 25: 36 43 83 65 99 25 7 45 6 53 | 61 63 74 7 10 76 4 22 59 31 6 47 45 41 24 21 53 68 99 15 91 46 65 97 69 + \\Card 26: 71 30 23 27 62 16 38 97 8 57 | 73 90 8 41 71 86 93 69 62 30 70 61 28 14 27 97 17 38 4 34 16 99 25 57 23 + \\Card 27: 38 46 70 79 64 7 40 63 60 99 | 63 79 28 10 85 11 64 60 70 24 99 39 12 27 7 38 31 20 67 40 95 75 46 54 45 + \\Card 28: 65 47 39 90 70 99 40 76 26 86 | 46 35 56 38 4 96 26 60 43 66 94 7 29 16 78 69 64 87 37 41 27 80 57 42 12 + \\Card 29: 33 39 49 31 36 61 23 94 46 1 | 15 49 36 61 40 83 24 39 13 3 86 92 27 55 1 31 29 94 8 21 7 60 73 4 66 + \\Card 30: 14 34 91 83 48 79 45 98 92 46 | 86 74 24 82 53 51 80 14 77 38 32 78 98 68 45 92 91 34 88 95 15 79 46 29 58 + \\Card 31: 53 12 68 17 44 54 29 77 92 37 | 74 86 23 44 36 4 69 53 65 13 98 77 67 17 68 29 11 54 12 51 99 37 14 92 64 + \\Card 32: 83 75 9 94 30 44 3 22 71 85 | 77 33 88 31 78 80 58 62 53 14 35 12 73 57 98 94 87 11 17 84 81 91 69 68 26 + \\Card 33: 43 42 17 85 99 65 52 36 78 46 | 1 41 17 18 80 44 62 47 46 74 67 10 29 37 92 57 9 65 30 14 45 32 55 75 40 + \\Card 34: 57 82 29 22 38 76 3 25 16 58 | 94 46 16 5 9 3 14 36 44 23 39 52 20 49 7 28 17 74 76 22 93 92 6 71 96 + \\Card 35: 61 95 18 38 87 68 89 24 53 91 | 39 71 86 87 44 29 64 41 70 50 85 3 96 38 89 24 17 81 30 21 42 26 16 76 79 + \\Card 36: 30 81 54 63 92 91 13 22 90 6 | 9 30 40 60 5 91 38 45 8 42 6 81 58 24 29 1 13 48 25 41 43 54 69 83 97 + \\Card 37: 26 77 91 25 58 10 15 52 13 44 | 98 89 50 39 97 46 49 38 3 64 4 87 2 30 95 54 91 40 41 68 20 93 78 36 17 + \\Card 38: 21 74 28 5 52 24 7 87 13 2 | 69 38 40 78 17 60 96 10 29 42 85 26 56 51 30 9 48 7 36 23 21 77 1 81 13 + \\Card 39: 55 58 31 7 19 14 73 89 3 9 | 80 15 65 45 66 81 2 82 14 41 48 24 40 11 69 52 3 58 4 70 20 51 29 71 62 + \\Card 40: 11 73 21 93 89 68 48 95 49 25 | 14 54 32 18 7 96 56 3 37 98 53 38 31 84 4 92 86 45 9 5 71 40 49 1 46 + \\Card 41: 59 94 97 52 64 36 73 14 23 85 | 68 29 1 51 99 44 35 7 71 91 16 54 37 77 45 41 82 2 13 17 22 27 63 96 53 + \\Card 42: 77 36 91 83 97 42 98 10 30 80 | 8 47 24 93 88 48 59 38 44 68 99 72 75 49 64 6 85 23 50 29 74 95 5 62 20 + \\Card 43: 89 43 72 22 94 79 26 55 13 63 | 35 75 39 50 94 79 48 99 5 76 22 32 46 7 80 44 43 55 16 89 26 63 95 72 13 + \\Card 44: 51 89 60 27 97 47 50 98 13 22 | 89 67 22 18 76 27 75 28 6 47 13 34 84 21 50 10 57 97 49 51 60 56 19 98 11 + \\Card 45: 62 35 76 38 61 94 29 73 80 60 | 86 87 81 74 84 14 73 76 94 20 19 11 1 78 38 93 29 61 2 80 60 35 72 46 62 + \\Card 46: 70 26 86 71 47 20 80 64 67 8 | 93 25 20 14 80 31 91 60 36 12 52 70 26 47 40 22 19 67 95 71 33 58 64 53 75 + \\Card 47: 72 37 74 81 14 3 29 77 5 49 | 5 88 89 81 37 14 71 95 63 54 49 24 67 62 77 29 72 92 39 80 60 74 59 3 93 + \\Card 48: 75 24 3 20 15 42 98 80 71 99 | 72 81 27 78 96 44 37 91 65 30 4 93 64 15 28 34 48 39 38 66 57 45 24 47 5 + \\Card 49: 87 31 80 8 78 83 97 92 66 94 | 56 97 92 51 59 29 47 2 44 4 9 83 41 14 80 87 31 39 75 23 19 82 35 78 60 + \\Card 50: 82 75 11 35 29 78 89 38 2 84 | 1 63 91 5 41 45 93 23 60 64 97 58 46 87 18 8 76 30 73 26 43 20 67 54 94 + \\Card 51: 92 55 48 66 18 41 37 69 52 36 | 3 26 94 1 37 84 76 43 78 30 87 4 38 20 49 83 66 60 99 89 51 9 36 61 7 + \\Card 52: 81 61 94 32 54 93 33 9 1 8 | 39 54 2 21 74 81 61 77 33 83 8 93 32 58 46 13 94 86 90 9 96 4 1 27 47 + \\Card 53: 44 2 29 69 86 91 50 92 53 98 | 35 64 62 93 41 96 10 50 67 90 30 53 27 80 32 81 51 3 31 43 86 69 44 60 2 + \\Card 54: 63 42 78 59 7 64 77 23 24 16 | 5 48 40 68 93 39 43 15 51 89 92 22 37 30 76 8 70 7 67 36 75 13 73 64 23 + \\Card 55: 99 40 83 12 9 86 96 50 64 42 | 19 3 20 68 6 33 56 46 50 16 77 23 99 96 39 4 90 25 61 47 8 54 12 41 15 + \\Card 56: 63 34 17 33 52 12 47 21 96 97 | 71 63 66 29 61 24 83 91 52 96 33 45 23 22 56 32 80 94 15 65 55 69 47 27 26 + \\Card 57: 70 93 45 7 71 12 84 72 77 26 | 97 15 96 92 63 40 68 34 57 4 36 38 61 26 2 23 59 98 25 24 72 43 88 12 1 + \\Card 58: 46 22 7 8 34 94 35 36 53 11 | 43 83 31 24 50 95 20 87 92 66 17 71 16 19 65 48 67 68 72 99 12 59 35 4 11 + \\Card 59: 2 38 44 95 5 20 22 90 35 7 | 1 97 8 56 10 35 72 26 71 40 31 99 58 88 64 38 85 25 20 89 46 47 57 5 78 + \\Card 60: 90 32 82 1 9 22 50 94 63 60 | 22 72 81 46 33 19 47 35 36 89 15 75 42 6 88 17 69 2 9 78 77 37 41 61 74 + \\Card 61: 49 29 23 68 59 55 50 24 41 75 | 65 91 73 48 13 15 59 41 61 85 94 80 27 7 44 17 69 63 92 37 39 6 64 43 82 + \\Card 62: 83 82 88 8 95 80 4 87 91 32 | 40 89 41 1 70 28 77 20 97 3 99 53 65 61 98 57 22 4 92 68 15 69 47 84 94 + \\Card 63: 66 30 9 84 14 67 44 5 68 54 | 99 86 7 17 89 10 28 71 39 55 46 61 29 58 50 63 15 57 42 85 25 36 83 13 8 + \\Card 64: 59 9 73 17 19 30 53 67 23 46 | 58 75 5 9 2 53 25 73 16 71 63 23 67 10 18 29 59 17 90 46 19 30 42 28 38 + \\Card 65: 56 68 21 9 52 11 40 83 86 23 | 60 63 1 54 58 18 42 9 22 16 73 68 87 26 69 4 71 84 30 67 23 17 86 37 47 + \\Card 66: 70 47 10 59 97 66 30 6 71 96 | 42 70 91 21 66 79 71 97 37 6 48 96 86 59 47 3 88 10 80 11 30 73 18 14 50 + \\Card 67: 16 47 83 48 73 86 14 51 55 42 | 70 14 47 67 9 77 56 10 73 24 50 81 54 3 83 55 51 7 42 1 16 80 41 48 86 + \\Card 68: 54 25 28 78 64 43 88 20 57 95 | 16 83 63 21 18 58 40 62 95 51 30 70 64 71 23 25 28 20 8 57 46 35 78 49 54 + \\Card 69: 56 5 81 35 42 59 82 40 37 54 | 67 95 92 60 83 23 39 14 27 44 86 3 72 88 49 75 25 47 51 99 18 61 37 2 5 + \\Card 70: 29 89 6 71 55 50 92 66 17 47 | 31 72 36 95 78 2 14 1 42 52 57 99 84 21 17 39 51 10 48 66 4 71 26 25 32 + \\Card 71: 27 62 33 52 11 70 39 93 58 75 | 33 26 98 52 92 35 66 39 11 84 75 62 3 34 8 21 2 61 54 58 65 53 80 27 36 + \\Card 72: 69 66 38 84 8 87 77 96 80 51 | 22 63 54 23 21 84 89 55 9 96 8 43 68 2 6 98 71 65 97 51 38 82 80 87 77 + \\Card 73: 55 20 1 72 54 78 35 30 17 87 | 17 33 35 78 27 87 1 65 84 8 20 47 60 25 72 55 61 88 58 50 30 10 66 54 56 + \\Card 74: 66 63 1 75 82 23 59 68 94 2 | 31 23 55 58 87 66 85 15 42 10 43 28 96 44 99 16 63 79 89 65 60 38 75 56 78 + \\Card 75: 47 68 56 86 57 8 69 70 22 17 | 10 26 76 24 79 86 63 2 90 44 17 51 32 1 50 3 6 67 15 27 31 13 45 83 25 + \\Card 76: 5 22 18 83 47 2 76 14 26 88 | 18 42 46 22 80 71 76 60 29 68 45 51 26 64 17 62 69 91 28 73 32 21 85 86 79 + \\Card 77: 8 22 41 23 46 64 85 16 91 52 | 91 67 54 83 97 15 56 86 59 49 37 62 80 96 70 14 98 30 26 82 7 87 85 1 89 + \\Card 78: 1 39 33 31 44 64 81 11 56 35 | 67 92 72 94 41 93 11 28 69 34 71 1 35 79 39 36 64 61 55 63 22 33 77 27 62 + \\Card 79: 55 75 39 92 33 77 9 25 52 90 | 11 46 97 99 77 62 29 93 23 40 49 33 34 44 74 60 92 48 54 80 12 14 70 43 71 + \\Card 80: 65 57 42 76 26 1 95 60 16 45 | 39 9 75 56 57 94 65 60 63 76 33 91 8 27 68 73 17 19 21 96 66 97 52 3 86 + \\Card 81: 6 19 10 16 68 83 1 71 47 55 | 39 93 27 99 64 20 38 73 79 67 7 6 54 72 86 98 25 57 56 53 85 26 95 4 74 + \\Card 82: 81 25 13 10 91 34 20 42 45 21 | 76 17 42 58 80 90 55 45 66 89 84 33 52 97 96 56 92 86 48 61 1 13 85 62 91 + \\Card 83: 54 83 36 19 43 15 30 7 99 2 | 5 59 58 90 79 12 51 78 89 69 60 57 39 53 63 7 16 28 66 64 23 8 85 13 9 + \\Card 84: 62 10 42 43 88 34 99 78 81 52 | 61 36 98 34 99 25 50 71 4 6 65 55 49 93 95 58 79 57 16 84 39 18 21 5 69 + \\Card 85: 28 75 22 61 62 74 19 93 8 84 | 33 26 85 84 76 55 38 78 11 96 1 36 31 82 35 48 71 12 21 20 9 51 46 53 80 + \\Card 86: 46 96 63 73 11 29 56 78 7 85 | 49 47 43 39 92 66 71 64 44 83 8 2 23 54 75 3 90 5 93 32 59 53 28 94 89 + \\Card 87: 21 23 83 93 49 73 29 87 76 34 | 89 99 94 84 7 38 97 57 82 50 22 37 71 59 69 17 39 41 52 15 67 1 56 55 24 + \\Card 88: 77 16 3 37 20 75 17 30 63 53 | 20 77 24 3 93 55 75 4 30 5 73 17 37 13 82 64 16 48 38 63 69 53 10 7 78 + \\Card 89: 35 19 56 41 14 43 82 93 21 72 | 84 43 21 55 35 25 15 41 80 3 72 82 94 29 93 50 51 56 14 46 19 36 96 86 52 + \\Card 90: 37 58 71 21 38 12 49 79 23 43 | 71 86 32 21 70 92 69 37 28 78 49 79 62 59 60 38 47 4 43 12 58 1 2 84 18 + \\Card 91: 13 51 63 21 29 86 88 26 90 16 | 63 42 86 46 50 1 29 43 4 74 14 9 25 92 51 13 87 54 55 10 85 32 21 61 80 + \\Card 92: 79 24 44 20 42 49 50 41 10 66 | 49 50 73 55 10 56 60 9 41 97 17 61 24 14 94 38 11 78 81 51 66 27 33 18 20 + \\Card 93: 38 85 99 95 30 50 68 46 73 98 | 30 73 4 82 68 17 67 9 10 64 50 48 95 37 38 84 26 40 5 58 36 69 15 14 20 + \\Card 94: 86 11 2 33 20 90 3 8 62 87 | 77 11 47 20 10 64 87 93 92 70 86 56 8 82 27 57 7 31 17 60 23 97 22 45 79 + \\Card 95: 80 22 7 78 61 28 86 70 76 67 | 83 56 7 87 77 8 92 70 84 93 14 30 24 5 73 25 76 96 19 49 81 40 37 15 53 + \\Card 96: 43 41 8 17 28 83 18 98 72 16 | 79 25 2 18 97 15 42 91 60 34 40 96 78 49 45 33 51 62 67 56 19 38 7 3 29 + \\Card 97: 77 35 99 60 81 87 18 84 43 29 | 72 32 57 3 16 65 78 15 38 44 91 80 60 71 17 36 31 51 9 14 76 96 4 99 75 + \\Card 98: 29 86 5 48 21 43 16 27 59 6 | 51 10 61 62 92 43 89 44 37 63 19 39 32 77 47 79 27 22 7 30 78 31 41 64 83 + \\Card 99: 20 39 33 4 59 87 86 89 93 60 | 82 77 63 48 9 4 41 61 21 36 7 23 57 54 71 64 8 16 6 65 32 83 37 44 88 + \\Card 100: 24 23 36 12 79 94 15 65 67 14 | 1 39 67 42 6 50 26 15 10 73 92 75 83 38 82 47 31 16 89 52 28 8 19 62 35 + \\Card 101: 39 96 48 37 89 5 71 31 67 58 | 51 58 6 99 33 91 88 26 68 63 22 15 44 2 45 76 80 36 70 62 11 42 18 19 41 + \\Card 102: 93 97 30 54 31 96 26 91 10 33 | 52 56 50 19 78 84 86 70 16 41 36 72 27 43 34 53 74 63 68 89 3 83 38 55 60 + \\Card 103: 21 97 79 5 92 91 34 28 23 40 | 23 16 28 29 5 63 92 58 51 91 86 74 13 9 46 52 88 55 72 85 34 99 57 15 80 + \\Card 104: 97 39 17 93 21 34 91 89 50 27 | 30 27 97 10 34 91 53 63 22 62 21 83 80 93 7 72 56 60 66 79 4 67 39 32 89 + \\Card 105: 98 92 12 26 51 18 46 84 41 54 | 92 30 35 27 54 78 3 40 82 87 84 18 80 14 70 21 46 17 23 51 56 39 49 99 57 + \\Card 106: 11 50 62 80 4 10 16 30 92 52 | 68 72 36 29 70 11 95 2 50 31 23 57 65 58 13 52 71 43 12 4 87 44 96 38 74 + \\Card 107: 69 34 89 63 87 81 4 1 55 19 | 62 14 80 65 96 7 76 43 24 63 60 95 2 79 77 46 28 55 74 41 5 34 35 29 36 + \\Card 108: 70 92 10 47 55 65 85 86 13 41 | 55 18 20 24 85 2 51 66 13 95 10 47 3 93 92 50 56 65 32 80 16 72 1 76 41 + \\Card 109: 13 69 43 75 98 40 56 53 7 50 | 42 77 46 43 51 62 54 33 35 65 16 75 92 23 18 29 28 9 8 76 78 57 71 34 74 + \\Card 110: 10 89 39 7 69 38 87 27 11 62 | 8 10 53 37 42 41 77 70 68 34 17 2 47 89 97 96 33 29 35 31 98 6 61 86 67 + \\Card 111: 65 11 45 95 63 71 44 20 89 57 | 51 30 50 35 98 62 23 95 54 39 80 2 99 91 96 24 67 58 38 85 18 68 19 56 60 + \\Card 112: 83 22 25 96 47 65 11 2 63 39 | 62 99 6 93 65 96 56 84 78 32 94 50 2 39 71 88 26 38 80 4 44 36 19 58 12 + \\Card 113: 26 68 79 73 46 49 57 65 51 5 | 39 21 86 30 67 48 53 89 71 12 51 88 44 35 18 97 16 98 94 75 74 69 60 7 15 + \\Card 114: 51 19 75 48 62 5 46 94 43 56 | 80 71 41 33 62 68 4 67 84 66 92 55 32 24 43 86 35 58 63 23 11 98 10 15 46 + \\Card 115: 19 68 84 70 67 91 40 66 7 57 | 52 16 55 60 37 2 34 35 90 15 1 24 79 48 44 42 73 86 43 99 18 45 65 78 50 + \\Card 116: 1 33 44 70 71 74 55 30 4 23 | 41 5 6 50 10 32 35 18 28 21 42 17 95 98 75 65 36 39 7 83 96 27 31 99 9 + \\Card 117: 77 84 69 17 18 11 4 54 24 56 | 60 20 76 44 99 63 28 70 46 26 21 98 55 85 48 9 64 51 31 75 79 33 67 29 30 + \\Card 118: 19 23 64 82 70 17 95 6 47 13 | 50 47 49 44 53 4 36 96 43 78 39 9 82 38 72 8 14 12 24 26 10 64 65 84 37 + \\Card 119: 80 94 54 84 46 78 18 49 30 81 | 88 8 68 74 35 1 9 33 16 75 19 59 61 55 63 32 76 25 20 90 43 29 23 72 97 + \\Card 120: 7 87 75 59 31 61 29 33 66 39 | 36 20 42 75 61 56 7 37 87 10 29 81 31 66 39 45 68 33 40 1 73 83 52 60 59 + \\Card 121: 68 47 97 53 77 5 49 72 80 10 | 43 45 55 22 65 8 62 66 33 21 24 38 81 70 28 17 93 37 58 16 5 54 26 68 64 + \\Card 122: 29 48 43 45 95 85 50 42 18 73 | 96 2 30 40 52 46 17 98 13 89 7 53 87 26 15 63 28 22 62 19 27 75 21 69 38 + \\Card 123: 65 28 6 43 83 45 1 91 87 5 | 66 37 35 48 6 27 4 22 23 69 46 40 70 75 79 17 24 59 90 39 9 7 57 3 56 + \\Card 124: 71 94 76 77 98 48 95 75 83 17 | 17 4 99 70 81 28 23 78 45 20 94 95 76 42 48 98 19 77 30 39 69 71 87 83 75 + \\Card 125: 95 32 66 41 96 34 4 68 84 36 | 28 8 70 80 73 68 58 91 57 14 42 35 36 6 22 60 38 32 77 82 4 16 67 10 95 + \\Card 126: 88 46 26 45 74 65 80 56 53 8 | 60 63 56 33 78 8 45 74 85 95 65 86 53 70 21 38 68 14 88 79 50 26 90 75 35 + \\Card 127: 59 71 83 32 11 4 56 39 63 96 | 86 23 1 70 26 50 47 82 98 42 13 15 35 12 94 53 81 79 19 76 29 45 75 99 27 + \\Card 128: 55 53 47 95 28 54 38 83 46 67 | 52 67 46 40 94 95 69 97 54 21 99 66 23 4 98 83 48 62 3 11 29 28 38 63 55 + \\Card 129: 86 33 98 10 56 71 70 47 31 38 | 4 52 20 65 93 74 92 77 46 58 48 9 59 27 45 69 47 83 88 40 95 73 76 21 35 + \\Card 130: 81 39 87 51 14 71 4 46 88 63 | 70 37 69 8 65 95 29 6 89 54 33 50 96 66 2 32 19 28 90 48 87 26 61 21 4 + \\Card 131: 94 58 41 40 68 24 98 55 5 4 | 54 87 82 35 53 14 60 58 4 41 43 62 72 16 90 49 74 30 50 42 5 98 18 68 85 + \\Card 132: 55 22 59 97 67 6 90 7 36 51 | 59 66 49 61 25 72 45 93 79 47 50 71 64 69 1 6 16 4 23 7 94 8 53 48 15 + \\Card 133: 65 81 78 4 73 64 36 80 58 39 | 56 54 59 73 64 46 93 76 53 65 75 41 43 91 33 5 89 60 13 98 24 85 1 57 58 + \\Card 134: 23 48 64 31 94 12 13 41 80 99 | 37 68 31 45 5 30 84 22 89 83 41 65 76 9 3 18 53 85 50 69 12 72 99 8 58 + \\Card 135: 6 24 58 1 3 61 45 44 51 70 | 86 78 64 76 66 72 97 5 27 16 18 25 82 32 48 89 62 93 54 75 83 84 57 59 91 + \\Card 136: 79 25 90 32 19 21 2 24 94 67 | 51 22 65 48 70 4 1 84 86 50 9 30 18 3 99 67 89 26 34 42 73 93 27 78 63 + \\Card 137: 24 1 69 7 49 18 4 37 14 68 | 22 2 67 41 56 43 6 60 94 92 23 83 1 31 13 75 70 5 97 64 88 44 73 72 28 + \\Card 138: 12 1 71 46 95 25 37 51 26 27 | 3 11 59 90 92 42 72 65 44 13 97 75 58 39 76 10 45 94 69 86 35 85 73 20 89 + \\Card 139: 39 70 36 62 71 18 92 69 24 96 | 39 16 50 54 92 24 70 97 62 69 10 36 78 33 15 96 18 19 11 42 99 71 86 27 80 + \\Card 140: 2 11 39 42 10 52 33 71 23 31 | 38 62 73 52 78 92 84 10 35 34 2 31 88 71 59 41 42 45 46 95 64 11 33 23 39 + \\Card 141: 47 44 18 9 54 6 31 16 83 81 | 81 88 85 47 18 6 40 9 83 24 68 20 84 95 16 54 82 36 1 56 31 44 74 23 14 + \\Card 142: 32 76 54 78 4 99 53 43 18 47 | 19 83 76 63 74 44 85 75 38 1 17 24 12 7 66 31 84 87 54 22 18 34 88 97 50 + \\Card 143: 25 14 81 19 44 77 92 76 5 54 | 82 14 77 15 69 84 76 25 62 20 24 95 92 44 78 26 5 19 3 54 74 60 37 50 81 + \\Card 144: 49 7 6 5 94 20 54 64 98 97 | 98 93 69 64 97 50 62 5 11 20 6 51 55 2 21 39 28 76 81 71 7 26 52 91 95 + \\Card 145: 1 2 66 49 89 56 10 76 7 39 | 86 81 43 39 54 53 58 14 17 29 24 1 19 80 88 82 73 62 20 22 12 37 91 28 23 + \\Card 146: 41 69 32 57 15 74 27 61 25 78 | 74 15 27 69 25 17 32 19 78 43 6 60 8 41 30 20 62 73 47 61 76 58 22 37 57 + \\Card 147: 11 52 81 6 4 55 73 38 46 50 | 66 4 52 11 59 78 38 73 89 37 35 54 43 99 44 80 55 68 98 29 6 56 50 81 46 + \\Card 148: 34 14 67 27 32 70 61 86 81 72 | 70 86 40 53 44 72 61 50 79 34 46 18 10 14 81 7 30 27 64 28 32 66 67 5 55 + \\Card 149: 80 90 17 95 51 81 61 83 50 3 | 42 4 83 95 11 51 40 43 90 80 38 50 78 18 61 10 23 94 3 8 86 17 62 20 81 + \\Card 150: 96 54 30 34 82 41 76 53 51 85 | 31 47 82 96 22 76 73 25 29 41 10 79 17 9 46 35 30 71 34 97 48 74 56 64 37 + \\Card 151: 28 53 3 51 48 79 73 36 58 42 | 28 61 21 57 43 19 67 75 73 85 80 11 22 25 16 93 70 1 64 97 54 20 86 50 89 + \\Card 152: 31 90 47 70 45 88 49 61 39 5 | 19 9 22 11 74 95 53 93 14 46 67 36 70 32 34 27 55 17 65 89 40 16 90 96 12 + \\Card 153: 96 4 50 16 90 83 48 53 51 13 | 97 33 91 56 23 63 6 70 14 15 61 40 39 94 20 81 84 85 60 80 99 58 38 96 54 + \\Card 154: 44 63 29 65 41 23 7 83 42 75 | 2 75 92 65 80 83 24 10 29 96 25 69 8 71 63 60 15 44 38 6 42 20 41 30 12 + \\Card 155: 32 11 13 85 55 53 14 84 60 1 | 23 29 40 96 89 11 8 14 7 94 10 83 91 4 17 31 80 85 82 72 3 38 15 2 35 + \\Card 156: 60 12 33 95 54 83 55 75 62 51 | 20 29 37 38 96 69 68 47 39 15 50 99 78 30 86 77 74 4 22 40 97 26 71 66 35 + \\Card 157: 41 75 99 89 3 48 52 25 76 46 | 90 64 99 18 55 84 38 88 92 34 75 77 51 48 42 39 3 23 61 81 91 72 52 40 47 + \\Card 158: 92 41 45 24 86 6 77 59 14 29 | 92 67 83 70 37 32 25 80 94 23 86 64 5 34 85 98 8 89 96 90 97 51 73 91 81 + \\Card 159: 60 91 37 80 5 16 98 14 42 21 | 87 91 96 48 59 39 2 9 50 37 19 28 86 11 26 49 46 30 94 36 4 24 13 72 15 + \\Card 160: 66 49 88 17 67 95 14 40 76 27 | 6 55 34 72 75 31 2 1 64 58 17 61 67 96 28 24 89 57 3 40 60 22 78 52 21 + \\Card 161: 60 2 57 77 76 71 83 86 47 90 | 27 31 51 94 55 96 74 88 52 61 40 45 48 25 30 1 92 58 19 95 29 11 99 4 41 + \\Card 162: 52 25 5 95 78 96 45 64 1 97 | 85 74 62 83 16 67 30 13 40 55 93 80 86 21 79 44 9 51 48 54 70 49 18 65 28 + \\Card 163: 87 32 84 63 65 89 76 91 88 82 | 10 14 29 16 47 77 2 6 12 35 5 51 31 25 55 7 9 52 54 36 71 19 95 96 17 + \\Card 164: 87 10 68 76 17 14 85 43 46 54 | 16 91 11 99 26 28 19 46 43 66 71 76 27 14 37 61 57 32 24 85 54 35 10 23 17 + \\Card 165: 1 81 96 5 47 22 18 50 20 30 | 38 97 4 68 13 23 40 63 35 2 30 96 18 60 50 65 20 54 55 81 7 56 71 12 6 + \\Card 166: 32 6 13 30 68 46 80 86 84 57 | 84 55 30 31 46 48 27 53 13 90 70 98 36 37 24 47 80 57 67 79 68 19 86 6 22 + \\Card 167: 7 9 30 92 95 91 45 88 36 65 | 35 15 81 19 60 25 47 6 2 44 46 83 91 95 88 78 23 68 79 10 92 24 40 89 98 + \\Card 168: 90 37 32 3 18 52 95 88 51 48 | 89 4 99 88 48 52 24 32 73 50 18 72 28 33 51 3 68 11 91 67 82 95 85 49 7 + \\Card 169: 10 4 66 41 71 40 61 99 26 25 | 43 44 21 80 92 10 23 96 17 7 66 89 55 52 78 97 4 71 57 31 61 74 9 25 30 + \\Card 170: 16 95 6 49 5 4 25 82 90 54 | 3 43 73 16 82 35 80 60 4 15 68 42 57 49 37 5 13 2 32 89 47 27 95 58 25 + \\Card 171: 93 40 32 45 97 57 69 82 13 8 | 94 40 90 49 82 20 14 74 53 93 79 57 92 96 66 6 30 77 48 45 97 9 70 87 8 + \\Card 172: 19 58 52 85 39 80 76 6 43 94 | 42 50 21 94 51 40 28 82 83 52 86 17 4 35 62 81 99 48 11 14 47 84 39 49 20 + \\Card 173: 88 65 36 24 56 11 30 46 86 55 | 36 93 43 68 42 49 74 62 87 1 57 27 45 66 13 81 5 90 38 16 89 80 85 77 50 + \\Card 174: 53 92 23 87 93 61 30 45 74 27 | 44 25 75 6 27 93 81 49 30 98 61 87 23 88 18 33 70 29 53 26 43 60 74 84 45 + \\Card 175: 79 19 52 6 60 13 88 64 96 32 | 7 86 41 34 85 92 40 39 46 58 3 94 50 99 15 44 38 1 89 73 11 37 54 14 36 + \\Card 176: 94 48 56 28 3 25 41 35 69 51 | 10 58 30 51 80 1 70 83 35 61 90 41 56 54 67 48 42 11 76 74 9 66 86 50 19 + \\Card 177: 2 38 58 92 90 25 20 19 1 29 | 30 69 24 88 82 96 56 3 49 99 59 28 48 74 13 41 8 35 71 22 93 12 33 37 14 + \\Card 178: 66 79 20 37 85 81 57 59 74 6 | 85 94 22 5 63 13 99 25 97 68 71 95 83 98 18 39 53 9 27 30 62 69 38 15 56 + \\Card 179: 5 83 63 48 88 69 58 74 61 24 | 33 96 73 72 76 43 99 21 49 69 10 82 16 75 78 68 24 67 54 57 51 66 97 20 94 + \\Card 180: 79 80 85 56 12 24 64 2 18 88 | 42 73 57 65 66 71 5 15 81 55 37 34 9 28 61 51 36 48 95 3 83 63 77 75 96 + \\Card 181: 78 70 14 88 48 82 3 39 7 17 | 82 49 21 50 24 42 43 29 10 94 86 85 73 3 36 6 27 32 35 57 1 34 33 93 89 + \\Card 182: 89 44 72 14 32 61 50 71 95 5 | 49 60 69 20 28 68 67 98 10 42 12 87 84 53 24 51 7 3 40 36 76 63 33 30 29 + \\Card 183: 13 26 72 88 49 5 50 40 92 98 | 9 70 43 45 86 31 32 66 71 38 57 85 77 90 61 28 44 33 7 37 8 29 54 46 78 + \\Card 184: 49 99 25 65 26 54 76 36 19 10 | 55 38 85 40 10 6 42 72 81 50 92 76 99 49 71 65 30 51 62 52 36 93 69 54 88 + \\Card 185: 77 29 7 74 5 22 75 27 44 45 | 56 18 52 7 6 75 15 45 84 35 5 54 69 29 91 97 77 71 22 76 59 74 27 1 44 + \\Card 186: 1 23 90 57 54 91 26 84 59 36 | 13 36 93 90 99 71 23 61 57 91 49 1 59 30 53 81 84 14 69 9 5 29 76 26 97 + \\Card 187: 44 80 8 63 43 30 53 85 67 96 | 63 66 87 46 55 67 43 80 98 96 54 44 60 72 99 30 4 8 85 7 53 13 77 29 15 + \\Card 188: 59 29 55 98 92 42 74 62 79 16 | 90 59 74 8 33 14 73 79 41 57 65 21 88 12 35 61 66 97 22 48 72 44 9 80 91 + \\Card 189: 35 18 56 44 57 22 3 27 99 39 | 70 22 62 35 44 17 86 72 27 46 38 39 57 69 99 25 21 18 26 56 85 5 97 24 81 + \\Card 190: 24 77 20 49 58 11 2 89 67 32 | 93 65 59 18 16 39 54 23 83 92 48 94 87 89 67 13 78 84 29 63 95 98 37 38 45 + \\Card 191: 45 48 30 52 3 10 95 59 76 44 | 3 50 43 91 90 88 7 76 9 48 14 86 59 40 52 35 44 10 41 13 95 82 62 49 33 + \\Card 192: 31 43 97 75 42 91 34 80 6 99 | 55 22 2 31 3 75 15 90 34 29 82 63 42 93 1 80 99 97 68 65 62 83 50 53 6 + \\Card 193: 24 45 50 40 55 81 14 26 92 6 | 13 64 85 73 14 66 92 56 3 24 70 40 6 45 1 19 37 23 31 63 81 4 39 27 75 + \\Card 194: 36 4 19 20 99 45 54 58 61 79 | 74 59 53 27 11 79 23 29 90 85 38 52 44 69 14 41 7 1 15 80 56 91 35 31 26 + \\Card 195: 71 24 91 55 15 62 68 74 28 78 | 30 24 77 12 98 35 67 66 48 95 65 27 59 4 41 23 82 69 31 15 3 36 92 25 83 + \\Card 196: 42 43 26 49 51 25 75 40 69 20 | 6 16 75 18 64 82 4 36 27 87 60 91 46 42 26 33 93 52 24 31 55 29 19 70 86 + \\Card 197: 52 78 18 87 19 20 26 50 37 67 | 16 52 96 77 13 99 48 53 86 98 51 71 84 81 41 5 25 27 29 3 72 26 22 68 2 + \\Card 198: 48 73 57 9 63 74 42 12 29 85 | 45 77 75 4 69 72 54 55 64 2 86 82 49 95 36 99 34 13 98 79 8 1 23 44 93 + \\Card 199: 95 81 47 40 28 2 20 16 12 77 | 38 75 27 28 73 65 10 24 77 85 78 66 61 4 80 96 69 6 7 18 23 42 83 51 50 + \\Card 200: 71 94 29 5 99 61 56 14 76 54 | 97 70 48 45 89 46 90 79 20 75 66 44 87 19 23 35 47 60 6 61 43 98 18 21 83 + \\Card 201: 67 83 3 45 26 56 4 57 75 19 | 16 1 68 43 27 82 55 71 37 59 33 93 13 8 25 12 15 44 11 48 41 17 47 36 35 +; |