Compare commits

...

69 Commits

Author SHA1 Message Date
Ben Harris 990fcc8027
finally solved day 20 part 2
continuous-integration/drone/push Build is passing Details
2021-11-28 15:58:31 -05:00
Ben Harris b94a8bb120
day 25 part 1
continuous-integration/drone/push Build is passing Details
2021-11-28 15:08:11 -05:00
Ben Harris 219c1eec72 don't bother running all days
continuous-integration/drone/push Build is passing Details
2021-11-24 12:26:04 -05:00
Ben Harris 81abece3e1 day 24
continuous-integration/drone/push Build is failing Details
2021-11-24 12:25:23 -05:00
Ben Harris cf96009b07 day 23 part 2
continuous-integration/drone/push Build is failing Details
2021-11-17 17:11:01 -05:00
Ben Harris a8e60e3da2 day 23 part 1
continuous-integration/drone/push Build is failing Details
2021-11-14 14:11:01 -05:00
Ben Harris 7e4899ae2e solve day 22
continuous-integration/drone/push Build is failing Details
2021-11-12 19:58:48 -05:00
Ben Harris 3ba6c967f8 prefer expression body
continuous-integration/drone/push Build is failing Details
2021-11-12 17:56:41 -05:00
Ben Harris b599190409 fix nullable warnings
continuous-integration/drone/push Build is failing Details
2021-11-12 16:49:50 -05:00
Ben Harris 94ad64a16f day 21
continuous-integration/drone/push Build is failing Details
2021-11-12 16:09:49 -05:00
Ben Harris 5b0f00f269 use new Main format
continuous-integration/drone/push Build is failing Details
2021-11-11 00:17:22 -05:00
Ben Harris 811c0f5d74 update to .net 6
continuous-integration/drone/push Build is failing Details
- global usings
- file-scope namespaces
- update drone image tag
2021-11-09 16:18:13 -05:00
Ben Harris f1c329ddaa start day 20 part2, not working yet
continuous-integration/drone/push Build is failing Details
2021-01-02 20:37:47 -05:00
Ben Harris c25d7f1a01 day 20 part 1
continuous-integration/drone/push Build is failing Details
2021-01-02 19:31:06 -05:00
Ben Harris 4b17c629ca tidy up
continuous-integration/drone/push Build is passing Details
2021-01-02 12:54:54 -05:00
Ben Harris 65dbfd62f0 day 19
continuous-integration/drone/push Build is passing Details
2021-01-02 12:50:18 -05:00
Ben Harris 8571af616b day 18
continuous-integration/drone/push Build is passing Details
2021-01-02 12:22:51 -05:00
Ben Harris 433959aae4 ran resharper code formatter
continuous-integration/drone/push Build is passing Details
2021-01-02 12:22:35 -05:00
Ben Harris 0e16d4b4be
day 17
continuous-integration/drone/push Build is passing Details
part 2 is still super slow :(
2020-12-30 11:35:55 -05:00
Ben Harris 91ef41e4e5
add empty test rows for remaining days 2020-12-30 11:35:32 -05:00
Ben Harris 0605e90e97
add all days inputs
continuous-integration/drone/push Build is failing Details
2020-12-25 14:51:34 -05:00
Ben Harris 3bae636875 add input and empty classes for missing days
continuous-integration/drone/push Build is failing Details
2020-12-22 20:21:20 -05:00
Ben Harris 4cc25659e1 i have no idea what i'm doing
continuous-integration/drone/push Build is failing Details
2020-12-18 00:28:36 -05:00
Ben Harris e8e180a148
start day 17
continuous-integration/drone/push Build is passing Details
2020-12-17 00:15:59 -05:00
Ben Harris 85f34fbd3a print puzzle name in output
continuous-integration/drone/push Build is passing Details
2020-12-16 16:54:52 -05:00
Ben Harris 18311ecbac day 16 part 2
continuous-integration/drone/push Build is passing Details
2020-12-16 14:58:07 -05:00
Ben Harris deb765886d day 16 part 1
continuous-integration/drone/push Build is passing Details
2020-12-16 12:02:41 -05:00
Ben Harris b1ca76acdc day 15
continuous-integration/drone/push Build is passing Details
2020-12-15 11:39:10 -05:00
Ben Harris 44bfb2f8ff use UL literal format instead of ulong cast
continuous-integration/drone/push Build is passing Details
2020-12-14 18:02:32 -05:00
Ben Harris bffefe93bc convert to switch statement
continuous-integration/drone/push Build is passing Details
2020-12-14 17:51:05 -05:00
Ben Harris ca1b036ce7 remove unused extension methods
continuous-integration/drone/push Build is passing Details
2020-12-14 17:49:42 -05:00
Ben Harris 2e504e4f7b day 14 part 2
continuous-integration/drone/push Build is passing Details
2020-12-14 17:49:27 -05:00
Ben Harris cd93985b43 work on day 14 part 2
continuous-integration/drone/push Build is failing Details
not fully working...

correct answer calculated with my input on someone else's code
2020-12-14 16:43:47 -05:00
Ben Harris 9904a454a0 run code formatter
continuous-integration/drone/push Build is passing Details
2020-12-14 15:24:05 -05:00
Ben Harris ca34fdae9e day 14 part 1
continuous-integration/drone/push Build is passing Details
2020-12-14 14:27:14 -05:00
Ben Harris 97b58586dd start day 14
continuous-integration/drone/push Build is passing Details
2020-12-14 09:59:50 -05:00
Ben Harris e6ffe8050a day 13 part 2
continuous-integration/drone/push Build is passing Details
2020-12-13 15:43:52 -05:00
Ben Harris dea4e1014f day13 part 1
continuous-integration/drone/push Build is passing Details
2020-12-13 01:42:37 -05:00
Ben Harris 844a52bbec day 12
continuous-integration/drone/push Build is passing Details
2020-12-12 11:30:08 -05:00
Ben Harris c70ac6a5d5 fix day 11 part 2
continuous-integration/drone/push Build is passing Details
needed to reset the grid every time and also fully reset the game state
2020-12-12 10:09:29 -05:00
Ben Harris beb9fbba0b fix day 11 part 1
continuous-integration/drone/push Build is failing Details
2020-12-11 15:46:39 -05:00
Ben Harris 405339031e start work on day 11
continuous-integration/drone/push Build is failing Details
it's not working yet...
2020-12-11 02:44:41 -05:00
Ben Harris 608de1ff5f day 10 part 2
continuous-integration/drone/push Build is passing Details
adds the socket and device to the list and reverts the 1s and 3s counts
back to 0.

algorithm design from
- https://math.stackexchange.com/q/1118670
- https://oeis.org/A249631
2020-12-10 06:28:02 -05:00
Ben Harris 89c32f6074 day 10 part 1
continuous-integration/drone/push Build is passing Details
2020-12-10 05:42:36 -05:00
Ben Harris 4f7a18525c speed up day9
continuous-integration/drone/push Build is passing Details
2020-12-09 15:55:56 -05:00
Ben Harris de1f5edf78
tidy up base class
continuous-integration/drone/push Build is passing Details
2020-12-09 01:22:00 -05:00
Ben Harris 4e127e5afa
rename test project and input files for lexicographical sort
continuous-integration/drone/push Build is passing Details
2020-12-09 01:18:20 -05:00
Ben Harris 298ac825fd
day 9 part 2
continuous-integration/drone/push Build is passing Details
2020-12-09 00:57:16 -05:00
Ben Harris 3c0cc14d45
day 9 part 1
continuous-integration/drone/push Build is failing Details
2020-12-09 00:41:09 -05:00
Ben Harris eb58c1b72e
prepare for day09
continuous-integration/drone/push Build is passing Details
2020-12-08 21:41:41 -05:00
Ben Harris 45a7e6bea4
ran resharper formatter
continuous-integration/drone/push Build is passing Details
2020-12-08 18:18:39 -05:00
Ben Harris 4915157597 add leading 0 to day classes
continuous-integration/drone/push Build is passing Details
2020-12-08 16:37:42 -05:00
Ben Harris dc0a24b445 refactor unit tests to use DataRows
continuous-integration/drone/push Build is passing Details
2020-12-08 15:33:22 -05:00
Ben Harris 7fe1d80057 Set dayNumber in base constructor and increase stopwatch resolution
continuous-integration/drone/push Build is passing Details
2020-12-08 15:00:55 -05:00
Ben Harris 26ea5a977a
day8
continuous-integration/drone/push Build is passing Details
2020-12-08 01:01:31 -05:00
Ben Harris 8b714d4369 tidier parsing split
continuous-integration/drone/push Build is passing Details
2020-12-07 13:13:34 -05:00
Ben Harris 5252495438
day7
continuous-integration/drone/push Build is passing Details
2020-12-07 02:14:10 -05:00
Ben Harris 5f8a6c63e5
day 6 part 2
continuous-integration/drone/push Build is passing Details
2020-12-06 01:49:49 -05:00
Ben Harris 93f29bba2a
day 6 part 1
continuous-integration/drone/push Build is passing Details
2020-12-06 01:28:10 -05:00
Ben Harris 84be815cf6
use arithmetic sum
continuous-integration/drone/push Build is passing Details
2020-12-05 14:54:14 -05:00
Ben Harris c5859f8d8a idk this feels tidier
continuous-integration/drone/push Build is passing Details
2020-12-05 12:53:13 -05:00
Ben Harris 9c701b3bdc it's just a single binary number... splitting and *8 is unnecessary
continuous-integration/drone/push Build is passing Details
2020-12-05 11:56:27 -05:00
Ben Harris 327e394c13 day5
continuous-integration/drone/push Build is passing Details
2020-12-05 11:43:04 -05:00
Ben Harris b4fc5a77bc
rename test vars and add txt templates
continuous-integration/drone/push Build is passing Details
2020-12-04 02:16:34 -05:00
Ben Harris f073a9fa0d
Add correct day4 answers
continuous-integration/drone/push Build is passing Details
2020-12-04 00:57:43 -05:00
Ben Harris 93f49229c1
Day 4
continuous-integration/drone/push Build is failing Details
2020-12-04 00:56:45 -05:00
Ben Harris 6eb53b23bc
Fix yaml indentation and print solutions
continuous-integration/drone/push Build is passing Details
2020-12-03 21:17:53 -05:00
Ben Harris 8bf051f52c
Tidy Day baseclass and add empty day4
continuous-integration/drone/push Build is passing Details
2020-12-03 21:14:04 -05:00
Ben Harris b78203fb09
switch to using milliseconds for stopwatch
continuous-integration/drone/push Build is passing Details
2020-12-03 20:51:27 -05:00
66 changed files with 13396 additions and 312 deletions

View File

@ -3,7 +3,7 @@ kind: pipeline
name: run
steps:
- name: run
image: mcr.microsoft.com/dotnet/sdk:latest
commands:
- dotnet test
- name: run
image: mcr.microsoft.com/dotnet/sdk:6.0
commands:
- dotnet test

View File

@ -1,4 +1,4 @@
MIT License Copyright (c) <year> <copyright holders>
MIT License Copyright (c) 2020 Ben Harris
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,29 +0,0 @@
using aoc2020;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace aoc.tests
{
[TestClass]
public class Day1Test
{
private Day1 _day1;
[TestInitialize]
public void Initialize()
{
_day1 = new Day1();
}
[TestMethod]
public void TestPart1()
{
Assert.AreEqual("751776", _day1.Part1());
}
[TestMethod]
public void TestPart2()
{
Assert.AreEqual("42275090", _day1.Part2());
}
}
}

View File

@ -1,29 +0,0 @@
using aoc2020;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace aoc.tests
{
[TestClass]
public class Day2Test
{
private Day2 _day2;
[TestInitialize]
public void Initialize()
{
_day2 = new Day2();
}
[TestMethod]
public void TestPart1()
{
Assert.AreEqual("556", _day2.Part1());
}
[TestMethod]
public void TestPart2()
{
Assert.AreEqual("605", _day2.Part2());
}
}
}

View File

@ -1,29 +0,0 @@
using aoc2020;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace aoc.tests
{
[TestClass]
public class Day3Test
{
private Day3 _day3;
[TestInitialize]
public void Initialize()
{
_day3 = new Day3();
}
[TestMethod]
public void TestPart1()
{
Assert.AreEqual("189", _day3.Part1());
}
[TestMethod]
public void TestPart2()
{
Assert.AreEqual("1718180100", _day3.Part2());
}
}
}

View File

@ -5,7 +5,7 @@ VisualStudioVersion = 16.0.30709.132
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "aoc2020", "aoc2020\aoc2020.csproj", "{3D60F1A0-0DD9-4FF9-B85B-D491B13ACAE7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aoc.tests", "aoc.tests\aoc.tests.csproj", "{4E841B34-CF2F-4751-B31D-8E1D5FCEC8F6}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aoc2020.test", "aoc2020.test\aoc2020.test.csproj", "{4E841B34-CF2F-4751-B31D-8E1D5FCEC8F6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

60
aoc2020.test/DayTests.cs Normal file
View File

@ -0,0 +1,60 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Diagnostics;
namespace aoc2020.test;
[TestClass]
public class DayTests
{
[DataTestMethod]
[DataRow(typeof(Day01), "751776", "42275090")]
[DataRow(typeof(Day02), "556", "605")]
[DataRow(typeof(Day03), "189", "1718180100")]
[DataRow(typeof(Day04), "247", "145")]
[DataRow(typeof(Day05), "878", "504")]
[DataRow(typeof(Day06), "6273", "3254")]
[DataRow(typeof(Day07), "169", "82372")]
[DataRow(typeof(Day08), "1654", "833")]
[DataRow(typeof(Day09), "138879426", "23761694")]
[DataRow(typeof(Day10), "1980", "4628074479616")]
[DataRow(typeof(Day11), "2303", "2057")]
[DataRow(typeof(Day12), "1710", "62045")]
[DataRow(typeof(Day13), "171", "539746751134958")]
[DataRow(typeof(Day14), "17481577045893", "4160009892257")]
[DataRow(typeof(Day15), "257", "8546398")]
[DataRow(typeof(Day16), "19093", "5311123569883")]
// [DataRow(typeof(Day17), "293", "1816")] // this one takes too long and i don't want to bother optimizing it
[DataRow(typeof(Day18), "12918250417632", "171259538712010")]
[DataRow(typeof(Day19), "160", "357")]
[DataRow(typeof(Day20), "21599955909991", "2495")]
[DataRow(typeof(Day21), "2436", "dhfng,pgblcd,xhkdc,ghlzj,dstct,nqbnmzx,ntggc,znrzgs")]
[DataRow(typeof(Day22), "32856", "33805")]
[DataRow(typeof(Day23), "36542897", "562136730660")]
[DataRow(typeof(Day24), "282", "3445")]
[DataRow(typeof(Day25), "11707042", "")]
public void CheckAllDays(Type dayType, string part1, string part2)
{
// create day instance
var s = Stopwatch.StartNew();
var day = Activator.CreateInstance(dayType) as Day;
s.Stop();
Assert.IsNotNull(day, "failed to create day object");
Console.WriteLine($"{s.ScaleMilliseconds()}ms elapsed in constructor");
// part 1
s.Reset();
s.Start();
var part1Actual = day!.Part1();
s.Stop();
Console.WriteLine($"{s.ScaleMilliseconds()}ms elapsed in part1");
Assert.AreEqual(part1, part1Actual, $"Incorrect answer for Day {day.DayNumber} Part1");
// part 2
s.Reset();
s.Start();
var part2Actual = day.Part2();
s.Stop();
Console.WriteLine($"{s.ScaleMilliseconds()}ms elapsed in part2");
Assert.AreEqual(part2, part2Actual, $"Incorrect answer for Day {day.DayNumber} Part2");
}
}

View File

@ -1,8 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>

View File

@ -1,53 +1,44 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace aoc2020
namespace aoc2020;
public abstract class Day
{
public abstract class Day
protected Day(int dayNumber, string puzzleName)
{
public abstract int DayNumber { get; }
public virtual IEnumerable<string> Input =>
File.ReadLines($"input/day{DayNumber}.in");
public abstract string Part1();
public abstract string Part2();
public virtual void AllParts(bool verbose = false)
{
Console.WriteLine($"Day {DayNumber}:");
var s = new Stopwatch();
if (verbose) s.Start();
var part1 = Part1();
if (verbose)
{
s.Stop();
Console.WriteLine($"Part 1 elapsed ticks: {s.ElapsedTicks}");
}
Console.WriteLine(part1);
if (verbose)
{
s.Reset();
s.Start();
}
var part2 = Part2();
if (verbose)
{
s.Stop();
Console.WriteLine($"Part 2 elapsed ticks: {s.ElapsedTicks}");
}
Console.WriteLine(part2);
Console.WriteLine();
}
DayNumber = dayNumber;
PuzzleName = puzzleName;
}
}
public int DayNumber { get; }
public string PuzzleName { get; }
protected IEnumerable<string> Input =>
File.ReadLines(FileName);
protected string FileName =>
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"input/day{DayNumber,2:00}.in");
public abstract string Part1();
public abstract string Part2();
public void AllParts(bool verbose = true)
{
Console.WriteLine($"Day {DayNumber,2}: {PuzzleName}");
var s = Stopwatch.StartNew();
var part1 = Part1();
s.Stop();
Console.Write($"Part1: {part1,-15} ");
Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
s.Reset();
s.Start();
var part2 = Part2();
s.Stop();
Console.Write($"Part2: {part2,-15} ");
Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
Console.WriteLine();
}
}

29
aoc2020/Day01.cs Normal file
View File

@ -0,0 +1,29 @@
namespace aoc2020;
/// <summary>
/// Day 1: <see href="https://adventofcode.com/2020/day/1" />
/// </summary>
public sealed class Day01 : Day
{
private readonly ImmutableHashSet<int> _entries;
public Day01() : base(1, "Report Repair") =>
_entries = Input.Select(int.Parse).ToImmutableHashSet();
public override string Part1()
{
var entry = _entries.First(e => _entries.Contains(2020 - e));
return $"{entry * (2020 - entry)}";
}
public override string Part2()
{
foreach (var i in _entries)
foreach (var j in _entries)
foreach (var k in _entries)
if (i + j + k == 2020)
return $"{i * j * k}";
return "";
}
}

46
aoc2020/Day02.cs Normal file
View File

@ -0,0 +1,46 @@
namespace aoc2020;
/// <summary>
/// Day 2: <see href="https://adventofcode.com/2020/day/1" />
/// </summary>
public sealed class Day02 : Day
{
private readonly ImmutableList<Password> _passwords;
public Day02() : base(2, "Password Philosophy") =>
_passwords = Input.Select(p => new Password(p)).ToImmutableList();
public override string Part1() =>
$"{_passwords.Count(p => p.IsValid)}";
public override string Part2() =>
$"{_passwords.Count(p => p.IsValidByIndex)}";
private class Password
{
public Password(string line)
{
var split = line.Split(": ", 2);
var split2 = split[0].Split(' ', 2);
var indices = split2[0].Split('-', 2);
I = int.Parse(indices[0]);
J = int.Parse(indices[1]);
C = char.Parse(split2[1]);
Value = split[1];
}
public bool IsValid =>
Count >= I && Count <= J;
public bool IsValidByIndex =>
(Value[I - 1] == C) ^ (Value[J - 1] == C);
private int Count =>
Value.Count(p => p == C);
private int I { get; }
private int J { get; }
private char C { get; }
private string Value { get; }
}
}

39
aoc2020/Day03.cs Normal file
View File

@ -0,0 +1,39 @@
namespace aoc2020;
/// <summary>
/// Day 3: <see href="https://adventofcode.com/2020/day/3" />
/// </summary>
public sealed class Day03 : Day
{
private readonly string[] _grid;
private readonly int _width;
public Day03() : base(3, "Toboggan Trajectory")
{
_grid = Input.ToArray();
_width = _grid[0].Length;
}
private long CountSlope(int dx, int dy)
{
long hits = 0;
for (int x = 0, y = 0; y < _grid.Length; y += dy, x = (x + dx) % _width)
if (_grid[y][x] == '#')
hits++;
return hits;
}
public override string Part1() => $"{CountSlope(3, 1)}";
public override string Part2()
{
var xSlopes = new[] { 1, 3, 5, 7, 1 };
var ySlopes = new[] { 1, 1, 1, 1, 2 };
return xSlopes.Zip(ySlopes)
.Select(s => CountSlope(s.First, s.Second))
.Aggregate((acc, i) => acc * i)
.ToString();
}
}

176
aoc2020/Day04.cs Normal file
View File

@ -0,0 +1,176 @@
namespace aoc2020;
/// <summary>
/// Day 4: <see href="https://adventofcode.com/2020/day/4" />
/// </summary>
public sealed class Day04 : Day
{
private readonly List<Passport> _passports;
public Day04() : base(4, "Passport Processing")
{
_passports = new List<Passport>();
var a = new List<string>();
foreach (var line in Input)
{
if (line == "")
{
_passports.Add(Passport.Parse(a));
a.Clear();
continue;
}
a.Add(line);
}
if (a.Any()) _passports.Add(Passport.Parse(a));
}
public override string Part1() => $"{_passports.Count(p => p.IsValid)}";
public override string Part2() => $"{_passports.Count(p => p.ExtendedValidation())}";
private class Passport
{
private string? _byr;
private string? _cid;
private string? _ecl;
private string? _eyr;
private string? _hcl;
private string? _hgt;
private string? _iyr;
private string? _pid;
public bool IsValid =>
_byr != null &&
_iyr != null &&
_eyr != null &&
_hgt != null &&
_hcl != null &&
_ecl != null &&
_pid != null;
public bool ExtendedValidation()
{
if (!IsValid) return false;
// birth year
if (int.TryParse(_byr, out var byr))
{
if (byr < 1920 || byr > 2002)
return false;
}
else
{
return false;
}
// issuance year
if (int.TryParse(_iyr, out var iyr))
{
if (iyr < 2010 || iyr > 2020)
return false;
}
else
{
return false;
}
// expiration year
if (int.TryParse(_eyr, out var eyr))
{
if (eyr < 2020 || eyr > 2030)
return false;
}
else
{
return false;
}
// height
if (_hgt!.EndsWith("cm"))
{
var h = _hgt[..3];
if (int.TryParse(h, out var hgt))
{
if (hgt < 150 || hgt > 193)
return false;
}
else
{
return false;
}
}
else if (_hgt.EndsWith("in"))
{
var h = _hgt[..2];
if (int.TryParse(h, out var hgt))
{
if (hgt < 59 || hgt > 76)
return false;
}
else
{
return false;
}
}
else
{
return false;
}
// hair color
if (!Regex.IsMatch(_hcl!, "#[0-9a-f]{6}"))
return false;
// eye color
if (!new[] { "amb", "blu", "brn", "gry", "grn", "hzl", "oth" }.Contains(_ecl))
return false;
// passport id
if (_pid != null && _pid.Length != 9)
return false;
return true;
}
public static Passport Parse(IEnumerable<string> list)
{
var passport = new Passport();
foreach (var entry in string.Join(' ', list).Split(' ', StringSplitOptions.TrimEntries))
{
var spl = entry.Split(':', 2);
switch (spl[0])
{
case "byr":
passport._byr = spl[1];
break;
case "iyr":
passport._iyr = spl[1];
break;
case "eyr":
passport._eyr = spl[1];
break;
case "hgt":
passport._hgt = spl[1];
break;
case "hcl":
passport._hcl = spl[1];
break;
case "ecl":
passport._ecl = spl[1];
break;
case "pid":
passport._pid = spl[1];
break;
case "cid":
passport._cid = spl[1];
break;
}
}
return passport;
}
}
}

22
aoc2020/Day05.cs Normal file
View File

@ -0,0 +1,22 @@
namespace aoc2020;
/// <summary>
/// Day 5: <see href="https://adventofcode.com/2020/day/5" />
/// </summary>
public sealed class Day05 : Day
{
private readonly ImmutableHashSet<int> _ids;
public Day05() : base(5, "Binary Boarding") =>
_ids = Input
.Select(s =>
Convert.ToInt32(s.Replace('F', '0').Replace('B', '1').Replace('L', '0').Replace('R', '1'), 2))
.OrderBy(i => i)
.ToImmutableHashSet();
public override string Part1() => $"{_ids.Last()}";
public override string Part2() =>
// arithmetic sum of full series
$"{(_ids.Count + 1) * (_ids.First() + _ids.Last()) / 2 - _ids.Sum()}";
}

44
aoc2020/Day06.cs Normal file
View File

@ -0,0 +1,44 @@
namespace aoc2020;
/// <summary>
/// Day 6: <see href="https://adventofcode.com/2020/day/6" />
/// </summary>
public sealed class Day06 : Day
{
private readonly int _countPart1;
private readonly int _countPart2;
public Day06() : base(6, "Custom Customs")
{
var alphabet = "abcedfghijklmnopqrstuvwxyz".ToCharArray();
_countPart1 = 0;
_countPart2 = 0;
var s = new HashSet<char>();
var lines = new HashSet<string>();
foreach (var line in Input)
{
if (line == "")
{
_countPart1 += s.Count;
_countPart2 += alphabet.Count(a => lines.All(l => l.Contains(a)));
s.Clear();
lines.Clear();
continue;
}
foreach (var c in line)
s.Add(c);
lines.Add(line);
}
if (s.Any())
{
_countPart1 += s.Count;
_countPart2 += alphabet.Count(a => lines.All(l => l.Contains(a)));
}
}
public override string Part1() => $"{_countPart1}";
public override string Part2() => $"{_countPart2}";
}

54
aoc2020/Day07.cs Normal file
View File

@ -0,0 +1,54 @@
namespace aoc2020;
/// <summary>
/// Day 7: <see href="https://adventofcode.com/2020/day/7" />
/// </summary>
public sealed class Day07 : Day
{
private readonly Dictionary<string, IEnumerable<(int Weight, string Name)?>> _rules;
public Day07() : base(7, "Handy Haversacks") =>
_rules = Input
.Select(rule =>
{
var spl = rule.Split(" bags contain ", 2);
var outer = string.Join(' ', spl[0].Split(' ').Take(2));
var inner = spl[1].Split(", ").Select(ParseQuantity).Where(i => i != null);
return (outer, inner);
})
.ToDictionary(t => t.outer, t => t.inner);
private static (int, string)? ParseQuantity(string arg)
{
if (arg == "no other bags.") return null;
var words = arg.Split(' ');
return (int.Parse(words[0]), string.Join(' ', words[1..3]));
}
private int Weight(string node) =>
1 + _rules[node]
.Where(i => i.HasValue)
.Select(i => i!.Value)
.Sum(i => i.Weight * Weight(i.Name));
public override string Part1()
{
// breadth-first search with Queue
var start = new Queue<string>(new[] { "shiny gold" });
var p = new HashSet<string>();
string node;
while (true)
{
node = start.Dequeue();
foreach (var (container, contained) in _rules)
if (contained.Any(i => i.HasValue && i.Value.Name == node) && p.Add(container))
start.Enqueue(container);
if (!start.Any()) break;
}
return $"{p.Count}";
}
public override string Part2() => $"{Weight("shiny gold") - 1}";
}

72
aoc2020/Day08.cs Normal file
View File

@ -0,0 +1,72 @@
namespace aoc2020;
/// <summary>
/// Day 8: <see href="https://adventofcode.com/2020/day/8" />
/// </summary>
public sealed class Day08 : Day
{
private readonly (string instruction, int value)[] _instructions;
private int _accumulator;
private int _currentInstruction;
public Day08() : base(8, "Handheld Halting") =>
_instructions = Input.Select(ParseLine).ToArray();
private static (string, int) ParseLine(string line)
{
var spl = line.Split(' ', 2);
return (spl[0], int.Parse(spl[1]));
}
private bool Halts()
{
_accumulator = 0;
_currentInstruction = 0;
var visited = new bool[_instructions.Length + 1];
while (!visited[_currentInstruction] && _currentInstruction < _instructions.Length)
{
visited[_currentInstruction] = true;
switch (_instructions[_currentInstruction].instruction)
{
case "acc":
_accumulator += _instructions[_currentInstruction].value;
break;
case "jmp":
_currentInstruction += _instructions[_currentInstruction].value;
continue;
}
_currentInstruction++;
}
return _currentInstruction == _instructions.Length;
}
public override string Part1()
{
Halts();
return $"{_accumulator}";
}
public override string Part2()
{
for (var i = 0; i < _instructions.Length; i++)
// swap each nop and jmp and check if the program halts
if (_instructions[i].instruction == "nop")
{
_instructions[i].instruction = "jmp";
if (Halts()) break;
_instructions[i].instruction = "nop";
}
else if (_instructions[i].instruction == "jmp")
{
_instructions[i].instruction = "nop";
if (Halts()) break;
_instructions[i].instruction = "jmp";
}
return $"{_accumulator}";
}
}

47
aoc2020/Day09.cs Normal file
View File

@ -0,0 +1,47 @@
namespace aoc2020;
/// <summary>
/// Day 9: <see href="https://adventofcode.com/2020/day/9" />
/// </summary>
public sealed class Day09 : Day
{
private readonly long[] _list;
private long _part1;
public Day09() : base(9, "Encoding Error") =>
_list = Input.Select(long.Parse).ToArray();
public override string Part1()
{
for (var i = 25; i < _list.Length - 25; i++)
{
var preamble = _list[(i - 25)..i];
if (!preamble.Any(num1 => preamble.Any(num2 => num1 + num2 == _list[i])))
{
_part1 = _list[i];
return $"{_part1}";
}
}
return "";
}
public override string Part2()
{
for (var i = 0; i < _list.Length; i++)
{
long sum = 0;
for (var j = i; j < _list.Length; j++)
{
sum += _list[j];
if (sum > _part1) break;
if (sum != _part1) continue;
var subset = _list[i..(j + 1)].ToArray();
return $"{subset.Min() + subset.Max()}";
}
}
return "";
}
}

View File

@ -1,34 +0,0 @@
using System.Collections.Immutable;
using System.Linq;
namespace aoc2020
{
public sealed class Day1 : Day
{
private readonly ImmutableHashSet<int> _entries;
public Day1()
{
_entries = Input.Select(int.Parse).ToImmutableHashSet();
}
public override int DayNumber => 1;
public override string Part1()
{
var entry = _entries.First(e => _entries.Contains(2020 - e));
return $"{entry * (2020 - entry)}";
}
public override string Part2()
{
foreach (var i in _entries)
foreach (var j in _entries)
foreach (var k in _entries)
if (i + j + k == 2020)
return $"{i * j * k}";
return "";
}
}
}

52
aoc2020/Day10.cs Normal file
View File

@ -0,0 +1,52 @@
namespace aoc2020;
/// <summary>
/// Day 10: <see href="https://adventofcode.com/2020/day/10" />
/// </summary>
public sealed class Day10 : Day
{
private readonly int[] _adapters;
private readonly long[] _memo;
public Day10() : base(10, "Adapter Array")
{
var parsed = Input.Select(int.Parse).ToArray();
// add socket and device to the list
_adapters = parsed.Concat(new[] { 0, parsed.Max() + 3 }).OrderBy(i => i).ToArray();
_memo = new long[_adapters.Length];
}
private long Connections(int i)
{
if (i == _adapters.Length - 1) _memo[i] = 1;
if (_memo[i] > 0) return _memo[i];
for (var j = i + 1; j <= i + 3 && j < _adapters.Length; j++)
if (_adapters[j] - _adapters[i] <= 3)
_memo[i] += Connections(j);
return _memo[i];
}
public override string Part1()
{
var ones = 0;
var threes = 0;
for (var i = 0; i < _adapters.Length - 1; i++)
switch (_adapters[i + 1] - _adapters[i])
{
case 1:
ones++;
break;
case 3:
threes++;
break;
default: throw new Exception("something went wrong");
}
return $"{ones * threes}";
}
public override string Part2() => $"{Connections(0)}";
}

137
aoc2020/Day11.cs Normal file
View File

@ -0,0 +1,137 @@
namespace aoc2020;
/// <summary>
/// Day 11: <see href="https://adventofcode.com/2020/day/11" />
/// </summary>
public sealed class Day11 : Day
{
public Day11() : base(11, "Seating System")
{
}
public override string Part1()
{
var prev = new LifeGame(Input);
while (true)
{
var next = prev.StepPart1();
var same = true;
for (var i = 0; i < next.Grid.Length; i++)
if (!next.Grid[i].SequenceEqual(prev.Grid[i]))
{
same = false;
break;
}
if (same) break;
prev = next;
}
return $"{prev.TotalSeated}";
}
public override string Part2()
{
var prev = new LifeGame(Input);
while (true)
{
var next = prev.StepPart2();
var same = true;
for (var i = 0; i < next.Grid.Length; i++)
if (!next.Grid[i].SequenceEqual(prev.Grid[i]))
{
same = false;
break;
}
if (same) break;
prev = next;
}
return $"{prev.TotalSeated}";
}
private class LifeGame
{
private int _h, _w;
public char[][] Grid;
public LifeGame(IEnumerable<string> input)
{
Grid = input.Select(line => line.ToCharArray()).ToArray();
_h = Grid.Length;
_w = Grid[0].Length;
}
private LifeGame() => Grid = Array.Empty<char[]>();
public int TotalSeated =>
Grid.Sum(l => l.Count(c => c == '#'));
public LifeGame StepPart1()
{
var next = new LifeGame { _h = _h, _w = _w, Grid = Grid.Select(s => s.ToArray()).ToArray() };
for (var y = 0; y < _h; y++)
for (var x = 0; x < _w; x++)
next.Grid[y][x] = Grid[y][x] switch
{
'L' when CountAdjacent(y, x) == 0 => '#',
'#' when CountAdjacent(y, x) >= 4 => 'L',
_ => Grid[y][x]
};
// next.PrintBoard();
return next;
}
private char At(int y, int x) =>
x < 0 || y < 0 || x >= _w || y >= _h ? '.' : Grid[y][x];
private int CountAdjacent(int y, int x) =>
new[]
{
At(y - 1, x - 1), At(y - 1, x + 0), At(y - 1, x + 1),
At(y + 0, x - 1), At(y + 0, x + 1),
At(y + 1, x - 1), At(y + 1, x + 0), At(y + 1, x + 1)
}.Count(c => c == '#');
public LifeGame StepPart2()
{
var next = new LifeGame { _h = _h, _w = _w, Grid = Grid.Select(s => s.ToArray()).ToArray() };
for (var y = 0; y < _h; y++)
for (var x = 0; x < _w; x++)
next.Grid[y][x] = Grid[y][x] switch
{
'L' when CanSee(y, x) == 0 => '#',
'#' when CanSee(y, x) >= 5 => 'L',
_ => Grid[y][x]
};
// next.PrintBoard();
return next;
}
private int CanSee(int y, int x) =>
new[]
{
TraceRay(y, x, -1, -1), TraceRay(y, x, -1, +0), TraceRay(y, x, -1, +1),
TraceRay(y, x, +0, -1), TraceRay(y, x, +0, +1),
TraceRay(y, x, +1, -1), TraceRay(y, x, +1, +0), TraceRay(y, x, +1, +1)
}.Count(c => c == '#');
private char TraceRay(int y, int x, int dy, int dx)
{
y += dy;
x += dx;
while (y >= 0 && y < _h && x >= 0 && x < _w)
{
if (Grid[y][x] != '.') return Grid[y][x];
y += dy;
x += dx;
}
return '.';
}
}
}

86
aoc2020/Day12.cs Normal file
View File

@ -0,0 +1,86 @@
namespace aoc2020;
/// <summary>
/// Day 12: <see href="https://adventofcode.com/2020/day/12" />
/// </summary>
public sealed class Day12 : Day
{
public Day12() : base(12, "Rain Risk")
{
}
private static void Swap(ref int x, ref int y) => (y, x) = (x, y);
private (int x, int y, int sx, int sy) ProcessInstructions()
{
// start facing east
int x = 0, y = 0, dx = 1, dy = 0;
int sx = 0, sy = 0, waypointX = 10, waypointY = -1;
foreach (var instruction in Input)
{
var value = int.Parse(instruction[1..]);
switch (instruction[0])
{
case 'N':
y -= value;
waypointY -= value;
break;
case 'S':
y += value;
waypointY += value;
break;
case 'E':
x += value;
waypointX += value;
break;
case 'W':
x -= value;
waypointX -= value;
break;
case 'L':
for (var i = 0; i < value / 90; ++i)
{
Swap(ref dx, ref dy);
Swap(ref waypointX, ref waypointY);
dy *= -1;
waypointY *= -1;
}
break;
case 'R':
for (var i = 0; i < value / 90; ++i)
{
Swap(ref dx, ref dy);
Swap(ref waypointX, ref waypointY);
dx *= -1;
waypointX *= -1;
}
break;
case 'F':
x += dx * value;
y += dy * value;
sx += waypointX * value;
sy += waypointY * value;
break;
default: throw new InvalidOperationException(nameof(instruction));
}
}
return (x, y, sx, sy);
}
public override string Part1()
{
var (x, y, _, _) = ProcessInstructions();
return $"{Math.Abs(x) + Math.Abs(y)}";
}
public override string Part2()
{
var (_, _, sx, sy) = ProcessInstructions();
return $"{Math.Abs(sx) + Math.Abs(sy)}";
}
}

51
aoc2020/Day13.cs Normal file
View File

@ -0,0 +1,51 @@
namespace aoc2020;
/// <summary>
/// Day 13: <see href="https://adventofcode.com/2020/day/13" />
/// </summary>
public sealed class Day13 : Day
{
private readonly long[] _buses;
private readonly long _earliest;
private readonly string[] _fullSchedule;
public Day13() : base(13, "Shuttle Search")
{
_earliest = long.Parse(Input.First());
_fullSchedule = Input.Last().Split(',');
_buses = _fullSchedule.Where(c => c != "x").Select(long.Parse).ToArray();
}
public override string Part1()
{
for (var i = _earliest; ; i++)
if (_buses.Any(b => i % b == 0))
{
var bus = _buses.First(b => i % b == 0);
return $"{bus * (i - _earliest)}";
}
}
public override string Part2()
{
var i = 0;
long result = 1, multiplier = 1;
foreach (var id in _fullSchedule)
{
if (id != "x")
{
var increment = long.Parse(id);
while (((result += multiplier) + i) % increment != 0)
{
}
multiplier *= increment;
}
i++;
}
return $"{result}";
}
}

106
aoc2020/Day14.cs Normal file
View File

@ -0,0 +1,106 @@
namespace aoc2020;
/// <summary>
/// Day 14: <see href="https://adventofcode.com/2020/day/14" />
/// </summary>
public sealed class Day14 : Day
{
public Day14() : base(14, "Docking Data")
{
}
public override string Part1()
{
var writes = new Dictionary<ulong, ulong>();
ulong mask = 0, bits = 0;
foreach (var line in Input)
if (line.StartsWith("mask = "))
{
var str = line.Split("mask = ", 2)[1];
mask = bits = 0;
for (var i = 35; i >= 0; --i)
switch (str[35 - i])
{
case 'X':
mask |= 1UL << i;
break;
case '1':
bits |= 1UL << i;
break;
}
}
else
{
var spl = line.Split(new[] { '[', ']', '=' },
StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
.Skip(1)
.Select(ulong.Parse)
.ToArray();
writes[spl[0]] = (spl[1] & mask) | bits;
}
return $"{writes.Aggregate<KeyValuePair<ulong, ulong>, ulong>(0, (current, w) => current + w.Value)}";
}
public override string Part2()
{
var memory = new Dictionary<ulong, ulong>();
var mask = "";
foreach (var line in Input)
{
var spl = line.Split(' ', 3, StringSplitOptions.TrimEntries);
if (spl[0] == "mask")
{
mask = spl[2];
}
else
{
var value = ulong.Parse(spl[2]);
var addr = ulong.Parse(spl[0].Split(new[] { '[', ']' },
StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)[1]);
var floats = new List<int>();
for (var i = 0; i < mask.Length; i++)
switch (mask[i])
{
case 'X':
floats.Add(i);
break;
case '1':
addr |= 1UL << (35 - i);
break;
}
if (floats.Any())
{
var combos = new List<ulong> { addr };
foreach (var i in floats)
{
var newCombos = new List<ulong>();
foreach (var c in combos)
{
newCombos.Add(c | (1UL << (35 - i)));
newCombos.Add(c & ~(1UL << (35 - i)));
}
combos = newCombos;
}
foreach (var c in combos)
memory[c] = value;
}
else
{
memory[addr] = value;
}
}
}
return $"{memory.Aggregate<KeyValuePair<ulong, ulong>, ulong>(0, (current, w) => current + w.Value)}";
}
}

45
aoc2020/Day15.cs Normal file
View File

@ -0,0 +1,45 @@
namespace aoc2020;
/// <summary>
/// Day 15: <see href="https://adventofcode.com/2020/day/15" />
/// </summary>
public sealed class Day15 : Day
{
private readonly int[] _turns;
private int _current;
private int _i;
public Day15() : base(15, "Rambunctious Recitation")
{
var initial = Input.First().Split(',').Select(int.Parse).ToArray();
_turns = new int[30_000_000];
// seed array with initial values
for (_i = 1; _i < initial.Length + 1; _i++)
_turns[initial[_i - 1]] = _i;
}
public override string Part1()
{
for (; _i != 2020; _i++)
{
var next = _turns[_current] > 0 ? _i - _turns[_current] : 0;
_turns[_current] = _i;
_current = next;
}
return $"{_current}";
}
public override string Part2()
{
for (; _i != 30_000_000; _i++)
{
var next = _turns[_current] > 0 ? _i - _turns[_current] : 0;
_turns[_current] = _i;
_current = next;
}
return $"{_current}";
}
}

86
aoc2020/Day16.cs Normal file
View File

@ -0,0 +1,86 @@
namespace aoc2020;
/// <summary>
/// Day 16: <see href="https://adventofcode.com/2020/day/16" />
/// </summary>
public sealed class Day16 : Day
{
private readonly Dictionary<string, List<Range>> _rules;
private readonly List<List<int>> _tickets;
public Day16() : base(16, "Ticket Translation")
{
_tickets = new();
_rules = new();
foreach (var line in Input)
{
var spl = line.Split(": ", 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
if (spl.Length == 2)
{
var rule = spl[1].Split(" or ").Select(s =>
{
var r = s.Split('-').Select(int.Parse).ToList();
return new Range(r[0], r[1]);
}).ToList();
_rules.Add(spl[0], rule);
}
else
{
spl = line.Split(',');
if (spl.Length > 1)
_tickets.Add(spl.Select(int.Parse).ToList());
}
}
}
public override string Part1()
{
var allValues = _tickets.Skip(1).SelectMany(t => t);
var allRules = _rules.Values.SelectMany(r => r);
return
$"{allValues.Where(t => !allRules.Any(r => r.Contains(t))).Sum()}";
}
public override string Part2()
{
var ticketFields = _tickets
// valid tickets
.Where(ticket => ticket
.All(t => _rules.Values
.SelectMany(r => r)
.Any(r => r.Contains(t))))
// group by index
.SelectMany(inner => inner.Select((item, index) => new { item, index }))
.GroupBy(i => i.index, i => i.item)
.Select(g => g.ToList())
.Select((val, i) => new { Value = val, Index = i })
.ToList();
var matchedRules = _rules
// find matching rules and indices
.SelectMany(x => ticketFields
.Where(y => y.Value.All(z => x.Value.Any(r => r.Contains(z))))
.Select(y => (x.Key, y.Index))
.ToList())
.ToList();
matchedRules.Sort((a, b) =>
matchedRules.Count(x => x.Key == a.Key) - matchedRules.Count(x => x.Key == b.Key));
while (matchedRules.Any(x => matchedRules.Count(y => y.Key == x.Key) > 1))
foreach (var (key, index) in matchedRules.Where(y =>
matchedRules.Count(z => z.Key == y.Key) == 1 &&
matchedRules.Count(z => z.Index == y.Index) > 1))
// filter matches by index
matchedRules = matchedRules
.Where(x => x.Index != index || x.Key == key)
.ToList();
var departureFields = matchedRules.Where(r => r.Key.StartsWith("departure"));
return
$"{departureFields.Aggregate(1L, (l, match) => l * _tickets.First()[match.Index])}";
}
}

124
aoc2020/Day17.cs Normal file
View File

@ -0,0 +1,124 @@
namespace aoc2020;
/// <summary>
/// Day 17: <see href="https://adventofcode.com/2020/day/17" />
/// </summary>
public sealed class Day17 : Day
{
private readonly Dictionary<(int x, int y, int z), char> _plane = new();
private readonly Dictionary<(int x, int y, int z, int w), char> _plane4 = new();
public Day17() : base(17, "Conway Cubes")
{
var input = Input.ToList();
for (var x = 0; x < 32; x++)
for (var y = 0; y < 32; y++)
for (var z = 0; z < 32; z++)
_plane[(x, y, z)] = '.';
for (var x = 0; x < 32; x++)
for (var y = 0; y < 32; y++)
for (var z = 0; z < 32; z++)
for (var w = 0; w < 32; w++)
_plane4[(x, y, z, w)] = '.';
for (var y = 0; y < input.Count; y++)
for (var x = 0; x < input[y].Length; x++)
_plane[(x, y, 0)] = input[y][x];
for (var y = 0; y < input.Count; y++)
for (var x = 0; x < input[y].Length; x++)
_plane4[(x, y, 0, 0)] = input[y][x];
}
private static int Neighbors(IReadOnlyDictionary<(int x, int y, int z), char> plane, int x, int y, int z)
{
var neighbors = 0;
foreach (var i in new[] { -1, 0, 1 })
foreach (var j in new[] { -1, 0, 1 })
foreach (var k in new[] { -1, 0, 1 })
{
if (i == 0 && j == 0 && k == 0) continue;
if (plane[((x + i) & 31, (y + j) & 31, (z + k) & 31)] == '#') neighbors++;
}
return neighbors;
}
private static Dictionary<(int x, int y, int z), char> Iterate(
IReadOnlyDictionary<(int x, int y, int z), char> prev)
{
var next = new Dictionary<(int x, int y, int z), char>();
for (var z = 0; z < 32; z++)
for (var y = 0; y < 32; y++)
for (var x = 0; x < 32; x++)
{
var active = Neighbors(prev, x, y, z);
if (prev[(x, y, z)] == '#')
next[(x, y, z)] = active == 2 || active == 3 ? '#' : '.';
else
next[(x, y, z)] = active == 3 ? '#' : '.';
}
return next;
}
private static int Neighbors4(IReadOnlyDictionary<(int x, int y, int z, int w), char> plane, int x, int y,
int z, int w)
{
var neighbors = 0;
foreach (var i in new[] { -1, 0, 1 })
foreach (var j in new[] { -1, 0, 1 })
foreach (var k in new[] { -1, 0, 1 })
foreach (var l in new[] { -1, 0, 1 })
{
if (i == 0 && j == 0 && k == 0 && l == 0) continue;
if (plane[((x + i) & 31, (y + j) & 31, (z + k) & 31, (w + l) & 31)] == '#') neighbors++;
}
return neighbors;
}
private static Dictionary<(int x, int y, int z, int w), char> Iterate4(
IReadOnlyDictionary<(int x, int y, int z, int w), char> prev)
{
var next = new Dictionary<(int x, int y, int z, int w), char>();
for (var z = 0; z < 32; z++)
for (var y = 0; y < 32; y++)
for (var x = 0; x < 32; x++)
for (var w = 0; w < 32; w++)
{
var active = Neighbors4(prev, x, y, z, w);
if (prev[(x, y, z, w)] == '#')
next[(x, y, z, w)] = active == 2 || active == 3 ? '#' : '.';
else
next[(x, y, z, w)] = active == 3 ? '#' : '.';
}
return next;
}
public override string Part1()
{
var plane = _plane;
foreach (var _ in Enumerable.Range(0, 6))
plane = Iterate(plane);
return $"{plane.Values.Count(v => v == '#')}";
}
public override string Part2()
{
var plane = _plane4;
foreach (var _ in Enumerable.Range(0, 6))
plane = Iterate4(plane);
return $"{plane.Values.Count(v => v == '#')}";
}
}

69
aoc2020/Day18.cs Normal file
View File

@ -0,0 +1,69 @@
namespace aoc2020;
/// <summary>
/// Day 18: <see href="https://adventofcode.com/2020/day/18" />
/// </summary>
public sealed class Day18 : Day
{
private readonly List<string> _expressions;
public Day18() : base(18, "Operation Order") =>
_expressions = Input.Select(line => line.Replace(" ", "")).ToList();
private static long Calculate(string expr, Func<char, int> precedence)
{
var postfixNotation = new StringBuilder();
var postfixStack = new Stack<char>();
foreach (var c in expr)
if (char.IsDigit(c))
{
postfixNotation.Append(c);
}
else if (c == '(')
{
postfixStack.Push(c);
}
else if (c == ')')
{
while (postfixStack.Count > 0 && postfixStack.Peek() != '(')
postfixNotation.Append(postfixStack.Pop());
postfixStack.TryPop(out _);
}
else
{
while (postfixStack.Count > 0 && precedence(c) <= precedence(postfixStack.Peek()))
postfixNotation.Append(postfixStack.Pop());
postfixStack.Push(c);
}
while (postfixStack.Count > 0)
postfixNotation.Append(postfixStack.Pop());
var expressionStack = new Stack<long>();
foreach (var c in postfixNotation.ToString())
if (char.IsDigit(c))
{
expressionStack.Push((long)char.GetNumericValue(c));
}
else
{
var a = expressionStack.Pop();
var b = expressionStack.Pop();
if (c == '+') expressionStack.Push(a + b);
if (c == '*') expressionStack.Push(a * b);
}
return expressionStack.Pop();
}
public override string Part1() =>
$"{_expressions.Sum(expr => Calculate(expr, c => c == '+' || c == '*' ? 1 : 0))}";
public override string Part2() =>
$"{_expressions.Sum(expr => Calculate(expr, c => c switch { '+' => 2, '*' => 1, _ => 0 }))}";
}

53
aoc2020/Day19.cs Normal file
View File

@ -0,0 +1,53 @@
namespace aoc2020;
/// <summary>
/// Day 19: <see href="https://adventofcode.com/2020/day/19" />
/// </summary>
public sealed class Day19 : Day
{
private readonly string[] _messages;
private readonly Dictionary<string, string[][]> _rules;
private readonly Stack<string> _stack;
public Day19() : base(19, "Monster Messages")
{
_rules = Input.TakeWhile(l => !string.IsNullOrWhiteSpace(l))
.Select(l => l.Split(':'))
.Select(a => (key: a[0],
val: a[1].Split('|', StringSplitOptions.RemoveEmptyEntries)
.Select(s => s.Split(' ', StringSplitOptions.RemoveEmptyEntries)).ToArray()))
.ToDictionary(a => a.key, a => a.val);
_messages = Input.Skip(_rules.Count + 1).ToArray();
_stack = new();
}
private string MakeRegexExpression(string key)
{
if (_stack.Count(s => s == key) > 10) return "x";
_stack.Push(key);
var sub = string.Join("|", _rules[key].Select(test => test.Length switch
{
1 => test[0][0] == '"' ? test[0].Trim('"') : MakeRegexExpression(test[0]),
_ => string.Join(string.Empty, test.Select(MakeRegexExpression))
}));
_stack.Pop();
return _rules[key].Length > 1 ? $"({sub})" : sub;
}
public override string Part1()
{
var exp = new Regex($"^{MakeRegexExpression("0")}$");
return $"{_messages.Count(m => exp.IsMatch(m))}";
}
public override string Part2()
{
// fix rules 8 and 11
_rules["8"] = new[] { new[] { "42" }, new[] { "42", "8" } };
_rules["11"] = new[] { new[] { "42", "31" }, new[] { "42", "11", "31" } };
var exp = new Regex($"^{MakeRegexExpression("0")}$");
return $"{_messages.Count(m => exp.IsMatch(m))}";
}
}

View File

@ -1,55 +0,0 @@
using System.Collections.Immutable;
using System.Linq;
namespace aoc2020
{
public sealed class Day2 : Day
{
private readonly ImmutableList<Password> _passwords;
public Day2()
{
_passwords = Input.Select(p => new Password(p)).ToImmutableList();
}
public override int DayNumber => 2;
public override string Part1()
{
return $"{_passwords.Count(p => p.IsValid)}";
}
public override string Part2()
{
return $"{_passwords.Count(p => p.IsValidByIndex)}";
}
private class Password
{
public Password(string line)
{
var split = line.Split(": ", 2);
var split2 = split[0].Split(' ', 2);
var indices = split2[0].Split('-', 2);
I = int.Parse(indices[0]);
J = int.Parse(indices[1]);
C = char.Parse(split2[1]);
Value = split[1];
}
public bool IsValid =>
Count >= I && Count <= J;
public bool IsValidByIndex =>
(Value[I - 1] == C) ^ (Value[J - 1] == C);
private int Count =>
Value.Count(p => p == C);
private int I { get; }
private int J { get; }
private char C { get; }
private string Value { get; }
}
}
}

258
aoc2020/Day20.cs Normal file
View File

@ -0,0 +1,258 @@
namespace aoc2020;
/// <summary>
/// Day 20: <see href="https://adventofcode.com/2020/day/20" />
/// </summary>
public sealed class Day20 : Day
{
public Day20() : base(20, "Jurassic Jigsaw")
{
}
public override string Part1()
{
var puzzlePieces = ParsePiecesFromInput(Input.ToArray());
var connections = FindConnections(puzzlePieces);
var cornerIds = connections
.Select(pair => (piece: pair.Key, nrConnections: pair.Value.Count))
.Where(connection => connection.nrConnections == 2)
.Select(connection => connection.piece.Id);
return $"{cornerIds.Aggregate((double)1, (curr, next) => curr * next)}";
}
public override string Part2()
{
var puzzlePieces = ParsePiecesFromInput(Input.ToArray());
var connections = FindConnections(puzzlePieces);
var puzzle = ComposePuzzle(connections);
var lines = ExtractImagesFromPuzzle(puzzle);
var numberSeaMonsters = TagSeaMonsters(lines);
var numberWaves = lines.Select(l => l.Count(c => c == '#')).Sum();
return $"{numberWaves - numberSeaMonsters * 15}";
}
private static IEnumerable<PuzzlePiece> ParsePiecesFromInput(string[] input)
{
var pieces = new List<PuzzlePiece>();
const int pieceHeight = 12;
for (var i = pieceHeight; i <= input.Length + 1; i += pieceHeight)
{
var lBound = i - pieceHeight;
var uBound = i - 1;
pieces.Add(PuzzlePiece.CreatePieceFromString(input[lBound..uBound]));
}
return pieces;
}
private static Dictionary<PuzzlePiece, List<PuzzlePiece>> FindConnections(IEnumerable<PuzzlePiece> puzzlePieces)
{
var sides = new Dictionary<string, PuzzlePiece>();
var connections = new Dictionary<PuzzlePiece, List<PuzzlePiece>>();
void AddConnection(PuzzlePiece p1, PuzzlePiece p2)
{
if (!connections.ContainsKey(p1)) connections.Add(p1, new List<PuzzlePiece>());
if (!connections.ContainsKey(p2)) connections.Add(p2, new List<PuzzlePiece>());
connections[p1].Add(p2);
connections[p2].Add(p1);
}
foreach (var piece in puzzlePieces)
foreach (var (original, flipped) in piece.SidesWithFlippedPaired.Value)
{
if (sides.ContainsKey(original))
{
var otherPiece = sides[original];
AddConnection(piece, otherPiece);
}
else if (sides.ContainsKey(flipped))
{
var otherPiece = sides[flipped];
AddConnection(piece, otherPiece);
}
else
{
sides.Add(original, piece);
sides.Add(flipped, piece);
}
}
return connections;
}
private static IEnumerable<PuzzlePiece[]> ComposePuzzle(Dictionary<PuzzlePiece, List<PuzzlePiece>> connections)
{
var sideSize = (int)Math.Sqrt(connections.Count);
var unprocessed = connections.Keys.ToHashSet();
// step 0: initialize puzzle array
var puzzle = new PuzzlePiece[sideSize][];
for (var i = 0; i < puzzle.Length; i++) puzzle[i] = new PuzzlePiece[sideSize];
// step1: take one of the angles (this will be our 0,0) and find its true orientation/side
var angle = connections.First(x => x.Value.Count == 2).Key;
puzzle[0][0] = RotatePieceToMatch00Position(angle, connections);
unprocessed.Remove(angle);
// step2: fill the first column
for (var i = 1; i < puzzle.Length; i++)
{
var previousPiece = puzzle[i - 1][0];
var bottomPiece = connections[previousPiece]
.Where(p => unprocessed.Contains(p))
.First(p => p.AllSidesWithFlipped.Value.Contains(previousPiece.BottomSide.Value));
puzzle[i][0] = bottomPiece.TransformSoTopMatchesWith(previousPiece.BottomSide.Value);
unprocessed.Remove(bottomPiece);
}
// step3: fill each row using the first value as starting point
foreach (var t in puzzle)
for (var c = 1; c < t.Length; c++)
{
var previousPiece = t[c - 1];
var rightPiece = connections[previousPiece]
.Where(p => unprocessed.Contains(p))
.First(p => p.AllSidesWithFlipped.Value.Contains(previousPiece.RightSide.Value));
t[c] = rightPiece.TransformSoLeftMatchesWith(previousPiece.RightSide.Value);
unprocessed.Remove(rightPiece);
}
return puzzle;
}
private static char[][] ExtractImagesFromPuzzle(IEnumerable<PuzzlePiece[]> puzzle)
{
const int pieceHeight = 10;
var lines = new List<string>();
foreach (var t in puzzle)
for (var line = 1; line < pieceHeight - 1; line++)
lines.Add(t.Aggregate("", (current, t1) => current + t1.GetLine(line)[1..^1]));
return lines.Select(line => line.ToCharArray()).ToArray();
}
private static PuzzlePiece RotatePieceToMatch00Position(
PuzzlePiece angle,
IReadOnlyDictionary<PuzzlePiece, List<PuzzlePiece>> connections)
{
var conn1 = connections[angle][0];
var conn2 = connections[angle][1];
var angleSides = angle.Sides.Value.ToHashSet();
var connectionsSides = conn1.SidesWithFlippedPaired.Value
.Concat(conn2.SidesWithFlippedPaired.Value)
.SelectMany(t => new[] { t.Item1, t.Item2 });
angleSides.ExceptWith(connectionsSides);
return angle.RotateUntilSidesCorrespondToTopLeft(angleSides);
}
private static int TagSeaMonsters(char[][] lines)
{
var images = new List<char[][]> { lines };
lines = lines.Rotate();
images.Add(lines);
lines = lines.Rotate();
images.Add(lines);
lines = lines.Rotate();
images.Add(lines);
lines = lines.FlipHorizontally();
images.Add(lines);
lines = lines.Rotate();
images.Add(lines);
lines = lines.Rotate();
images.Add(lines);
lines = lines.Rotate();
images.Add(lines);
return images.Select(CountSeaMonstersInImage).Sum();
}
private static int CountSeaMonstersInImage(char[][] lines)
{
const string pattern = @"(?<=#.{77})#.{4}#{2}.{4}#{2}.{4}#{3}(?=.{77}#.{2}#.{2}#.{2}#.{2}#.{2}#)";
var singleLine = lines.Aggregate("", (curr, next) => curr + new string(next));
var matches = Regex.Matches(singleLine, pattern);
return matches.Count;
}
private class PuzzlePiece
{
public readonly long Id;
private readonly char[][] _piece;
private readonly Lazy<string> _topSide;
public readonly Lazy<string> RightSide;
public readonly Lazy<string> BottomSide;
private readonly Lazy<string> _leftSide;
public readonly Lazy<string[]> Sides;
public readonly Lazy<HashSet<string>> AllSidesWithFlipped;
public readonly Lazy<(string, string)[]> SidesWithFlippedPaired;
public static PuzzlePiece CreatePieceFromString(string[] pieceWithId)
{
var id = long.Parse(pieceWithId[0][5..^1]);
var piece = pieceWithId[1..].Select(x => x.ToCharArray()).ToArray();
return new PuzzlePiece(id, piece);
}
private PuzzlePiece(long id, char[][] piece)
{
Id = id;
_piece = piece;
_topSide = new Lazy<string>(() => new string(piece[0]));
RightSide = new Lazy<string>(() => new string(piece.Select(line => line[^1]).ToArray()));
BottomSide = new Lazy<string>(() => new string(piece[^1].Reverse().ToArray()));
_leftSide = new Lazy<string>(() => new string(piece.Select(line => line[0]).Reverse().ToArray()));
Sides = new Lazy<string[]>(() => new[]
{ _topSide.Value, RightSide.Value, BottomSide.Value, _leftSide.Value });
SidesWithFlippedPaired = new Lazy<(string, string)[]>(() => CalculateSidesWithFlipped(this));
AllSidesWithFlipped = new Lazy<HashSet<string>>(() => CalculateAllSidesWithFlipped(this));
}
public override bool Equals(object? obj) => obj is PuzzlePiece piece && Id == piece.Id;
public override int GetHashCode() => HashCode.Combine(Id);
public override string ToString() => Id.ToString();
public PuzzlePiece TransformSoTopMatchesWith(string sideToMatch) =>
TransformSoSideMatchesWith(new string(sideToMatch.Reverse().ToArray()), p => p._topSide.Value);
public PuzzlePiece TransformSoLeftMatchesWith(string sideToMatch) =>
TransformSoSideMatchesWith(new string(sideToMatch.Reverse().ToArray()), p => p._leftSide.Value);
private PuzzlePiece TransformSoSideMatchesWith(string sideToMatch, Func<PuzzlePiece, string> getSide)
{
var side = getSide(this);
if (side == sideToMatch) return this;
return Sides.Value.ToHashSet().Contains(sideToMatch)
? Rotated().TransformSoSideMatchesWith(sideToMatch, getSide)
: Flipped().TransformSoSideMatchesWith(sideToMatch, getSide);
}
public PuzzlePiece RotateUntilSidesCorrespondToTopLeft(IReadOnlySet<string> sides) =>
sides.Contains(_leftSide.Value) && sides.Contains(_topSide.Value)
? this
: Rotated().RotateUntilSidesCorrespondToTopLeft(sides);
private PuzzlePiece Rotated() => new(Id, _piece.Rotate());
private PuzzlePiece Flipped() => new(Id, _piece.FlipHorizontally());
public string GetLine(int l) => new(_piece[l]);
private static (string, string)[] CalculateSidesWithFlipped(PuzzlePiece piece) =>
new (string, string)[]
{
(piece._topSide.Value, new string(piece._topSide.Value.Reverse().ToArray())),
(piece.RightSide.Value, new string(piece.RightSide.Value.Reverse().ToArray())),
(piece.BottomSide.Value, new string(piece.BottomSide.Value.Reverse().ToArray())),
(piece._leftSide.Value, new string(piece._leftSide.Value.Reverse().ToArray())),
};
private static HashSet<string> CalculateAllSidesWithFlipped(PuzzlePiece piece) =>
piece.Sides.Value.Concat(piece.Sides.Value.Select(s => new string(s.Reverse().ToArray()))).ToHashSet();
}
}

53
aoc2020/Day21.cs Normal file
View File

@ -0,0 +1,53 @@
namespace aoc2020;
/// <summary>
/// Day 21: <see href="https://adventofcode.com/2020/day/21" />
/// </summary>
public sealed class Day21 : Day
{
private readonly IEnumerable<(string[] Allergens, string[] Ingredients)> _parsedFoods;
private readonly IEnumerable<(string Allergen, string Ingredient)> _dangerousFoods;
public Day21() : base(21, "Allergen Assessment")
{
_parsedFoods = Input.Select(line => line.TrimEnd(')').Split(" (contains "))
.Select(split => (Allergens: split[1].Split(", "), Ingredients: split[0].Split(' ')));
_dangerousFoods = _parsedFoods
.SelectMany(i => i.Allergens.Select(Allergen => (Allergen, i.Ingredients)))
.GroupBy(
pair => pair.Allergen,
pair => pair.Ingredients.Select(i => i),
// group by intersection of ingredients
(Allergen, collection) =>
(Allergen, Ingredients: collection.Aggregate((acc, it) => acc.Intersect(it)))
)
.OrderBy(food => food.Ingredients.Count())
.Aggregate(
Enumerable.Empty<(string Allergen, string Ingredient)>(),
(poisons, pair) =>
poisons.Concat(new[] {(
allergen: pair.Allergen,
ingredient: pair.Ingredients.Except(poisons.Select(i => i.Ingredient)).First()
)})
);
}
public override string Part1()
{
var part1 = _parsedFoods
.SelectMany(i => i.Ingredients)
.Count(i => !_dangerousFoods.Select(t => t.Ingredient).Contains(i));
return $"{part1}";
}
public override string Part2()
{
var part2 = _dangerousFoods
.OrderBy(i => i.Allergen)
.Select(i => i.Ingredient);
return $"{string.Join(',', part2)}";
}
}

105
aoc2020/Day22.cs Normal file
View File

@ -0,0 +1,105 @@
namespace aoc2020;
/// <summary>
/// Day 22: <see href="https://adventofcode.com/2020/day/22" />
/// </summary>
public sealed class Day22 : Day
{
private readonly Queue<int> _deck1 = new();
private readonly Queue<int> _deck2 = new();
public Day22() : base(22, "Crab Combat")
{
Reset();
}
private void Reset()
{
_deck1.Clear();
_deck2.Clear();
int player = 0;
foreach (var line in Input)
{
if (line == "") continue;
if (line.StartsWith("Player"))
{
player++;
continue;
}
(player == 1 ? _deck1 : _deck2).Enqueue(int.Parse(line));
}
}
private (Queue<int> deck1, Queue<int> deck2) Play(Queue<int> deck1, Queue<int> deck2, bool recursive = false)
{
var seen1 = new HashSet<string>();
var seen2 = new HashSet<string>();
while (deck1.Any() && deck2.Any())
{
if (recursive)
{
var deck1Hash = string.Join(',', deck1);
var deck2Hash = string.Join(',', deck2);
if (seen1.Contains(deck1Hash) || seen2.Contains(deck2Hash))
{
// player1 wins
return (deck1, new Queue<int>());
}
else
{
seen1.Add(deck1Hash);
seen2.Add(deck2Hash);
}
}
var play1 = deck1.Dequeue();
var play2 = deck2.Dequeue();
int winner;
if (recursive && deck1.Count >= play1 && deck2.Count >= play2)
{
// play again
var (r1, r2) = Play(deck1.Take(play1), deck2.Take(play2), recursive);
winner = r1.Count > r2.Count ? 1 : 2;
}
else
winner = play1 > play2 ? 1 : 2;
if (winner == 1)
{
deck1.Enqueue(play1);
deck1.Enqueue(play2);
}
else
{
deck2.Enqueue(play2);
deck2.Enqueue(play1);
}
}
return (deck1, deck2);
}
private (Queue<int> deck1, Queue<int> deck2) Play(IEnumerable<int> enumerable1, IEnumerable<int> enumerable2, bool recursive) =>
Play(new Queue<int>(enumerable1), new Queue<int>(enumerable2), recursive);
private static int CalculateScore(Queue<int> deck) =>
deck.Reverse().Zip(Enumerable.Range(1, deck.Count), (a, b) => a * b).Sum();
public override string Part1()
{
var (deck1, deck2) = Play(_deck1, _deck2);
return $"{CalculateScore(deck1.Any() ? deck1 : deck2)}";
}
public override string Part2()
{
Reset();
var (deck1, deck2) = Play(_deck1, _deck2, recursive: true);
return $"{CalculateScore(deck1.Any() ? deck1 : deck2)}";
}
}

89
aoc2020/Day23.cs Normal file
View File

@ -0,0 +1,89 @@
namespace aoc2020;
/// <summary>
/// Day 23: <see href="https://adventofcode.com/2020/day/23" />
/// </summary>
public sealed class Day23 : Day
{
private readonly Dictionary<long, long> cups = new();
private readonly ImmutableList<long> initialCups;
private readonly long[] move;
private long current;
public Day23() : base(23, "Crab Cups")
{
initialCups = Input.First().Select(c => long.Parse(c.ToString())).ToImmutableList();
current = initialCups.First();
move = new long[3];
}
private void DoMoves(int turns)
{
for (var turn = 0; turn < turns; turn++)
{
var dest = current - 1;
if (dest == 0) dest = cups.Count;
for (var i = 0; i <= 2; i++)
{
var id = cups[current];
var removedNext = cups[id];
cups.Remove(id);
cups[current] = removedNext;
move[i] = id;
}
while (move.Contains(dest))
{
dest--;
if (dest == 0) dest = cups.Count + 3;
}
for (var i = 0; i <= 2; i++)
{
var id = cups[dest];
cups[dest] = move[i];
cups.Add(move[i], id);
dest = cups[dest];
}
current = cups[current];
}
}
public override string Part1()
{
for (var i = 0; i < initialCups.Count; i++)
cups[initialCups[i]] = initialCups[(i + 1) % initialCups.Count];
DoMoves(100);
current = 1;
var result = new StringBuilder();
while (cups[current] != 1)
{
result.Append(cups[current]);
current = cups[current];
}
return result.ToString();
}
public override string Part2()
{
cups.Clear();
for (var i = 0; i < initialCups.Count; i++)
cups[initialCups[i]] = initialCups[(i + 1) % initialCups.Count];
// add a million cups
cups[initialCups.Last()] = 10;
for (var i = 10; i < 1_000_000; i++)
cups.Add(i, i + 1);
cups[1_000_000] = current = initialCups.First();
DoMoves(10_000_000);
return $"{(ulong)cups[1] * (ulong)cups[cups[1]]}";
}
}

84
aoc2020/Day24.cs Normal file
View File

@ -0,0 +1,84 @@
namespace aoc2020;
/// <summary>
/// Day 24: <see href="https://adventofcode.com/2020/day/24" />
/// </summary>
public sealed class Day24 : Day
{
private static readonly Dictionary<string, (int q, int r, int s)> Directions = new()
{
{ "e", (1, 0, -1) },
{ "w", (-1, 0, 1) },
{ "se", (0, 1, -1) },
{ "sw", (-1, 1, 0) },
{ "nw", (0, -1, 1) },
{ "ne", (1, -1, 0) }
};
private Dictionary<(int q, int r, int s), Tile> _tiles;
public Day24() : base(24, "Lobby Layout")
{
_tiles = Input
.Select(Tile.FromLine)
.GroupBy(t => t.Location)
.Where(g => g.Count() % 2 == 1)
.Select(t => t.First())
.ToDictionary(t => t.Location);
}
public override string Part1() => $"{_tiles.Count}";
public override string Part2()
{
foreach (var _ in Enumerable.Range(0, 100))
{
_tiles = _tiles
.SelectMany(t => Directions.Select(d => t.Value + d.Value))
.Distinct()
.Where(t =>
{
var neighborCount = Directions
.Select(d => t + d.Value)
.Count(neighbor => _tiles.ContainsKey(neighbor.Location));
return neighborCount == 2 || _tiles.ContainsKey(t.Location) && neighborCount == 1;
})
.ToDictionary(t => t.Location);
}
return $"{_tiles.Count}";
}
private record Tile
{
public (int q, int r, int s) Location { get; private init; }
public static Tile FromLine(string route)
{
(int q, int r, int s) location = (0, 0, 0);
var direction = "";
foreach (var c in route)
{
if (c is 'n' or 's')
{
direction += c;
continue;
}
direction += c;
var (q, r, s) = Directions[direction];
location = (location.q + q, location.r + r, location.s + s);
direction = "";
}
return new Tile { Location = location };
}
public static Tile operator +(Tile t, (int q, int r, int s) direction) =>
t with
{
Location = (t.Location.q + direction.q, t.Location.r + direction.r, t.Location.s + direction.s)
};
}
}

43
aoc2020/Day25.cs Normal file
View File

@ -0,0 +1,43 @@
namespace aoc2020;
/// <summary>
/// Day 25: <see href="https://adventofcode.com/2020/day/25" />
/// </summary>
public sealed class Day25 : Day
{
public Day25() : base(25, "Combo Breaker")
{
}
public override string Part1()
{
var cardKey = int.Parse(Input.First());
var doorKey = int.Parse(Input.Last());
return $"{Transform(doorKey, FindLoopSize(7, cardKey))}";
}
public override string Part2() => "";
private static long Transform(long subject, int loopSize)
{
var value = 1L;
for (var i = 0; i < loopSize; i++)
{
value *= subject;
value %= 20201227;
}
return value;
}
private static int FindLoopSize(long subject, int target)
{
var value = 1L;
var loops = 0;
while (value != target)
{
value *= subject;
value %= 20201227;
loops++;
}
return loops;
}
}

View File

@ -1,50 +0,0 @@
using System.Linq;
namespace aoc2020
{
public sealed class Day3 : Day
{
private readonly string[] _grid;
private readonly int _width;
public Day3()
{
_grid = Input.ToArray();
_width = _grid[0].Length;
}
public override int DayNumber => 3;
private long CountSlope(int dx, int dy)
{
long hits = 0;
for (int x = 0, y = 0; y < _grid.Length; y += dy, x = (x + dx) % _width)
if (_grid[y][x] == '#')
hits++;
return hits;
}
public override string Part1()
{
return $"{CountSlope(3, 1)}";
}
public override string Part2()
{
var slopes = new[]
{
(1, 1),
(3, 1),
(5, 1),
(7, 1),
(1, 2)
};
return slopes
.Select(s => CountSlope(s.Item1, s.Item2))
.Aggregate((acc, i) => acc * i)
.ToString();
}
}
}

21
aoc2020/DayX.cs.txt Normal file
View File

@ -0,0 +1,21 @@
namespace aoc2020;
/// <summary>
/// Day X: <see href="https://adventofcode.com/2020/day/X" />
/// </summary>
public sealed class DayX : Day
{
public DayX() : base(X, "")
{
}
public override string Part1()
{
return "";
}
public override string Part2()
{
return "";
}
}

45
aoc2020/Extensions.cs Normal file
View File

@ -0,0 +1,45 @@
using System.Diagnostics;
namespace aoc2020;
public static class Extensions
{
/// <summary>
/// increased accuracy for stopwatch based on frequency.
/// <see
/// href="http://geekswithblogs.net/BlackRabbitCoder/archive/2012/01/12/c.net-little-pitfalls-stopwatch-ticks-are-not-timespan-ticks.aspx">
/// blog
/// details here
/// </see>
/// </summary>
/// <param name="stopwatch"></param>
/// <returns></returns>
public static double ScaleMilliseconds(this Stopwatch stopwatch) =>
1_000 * stopwatch.ElapsedTicks / (double)Stopwatch.Frequency;
public static bool Contains(this Range range, int i) => i >= range.Start.Value && i <= range.End.Value;
/// <summary>
/// Given an array, it returns a rotated copy.
/// </summary>
/// <param name="array">The two dimensional jagged array to rotate.</param>
public static T[][] Rotate<T>(this T[][] array)
{
var result = new T[array[0].Length][];
for (var i = 0; i < result.Length; i++)
result[i] = new T[array.Length];
for (var i = 0; i < array.Length; i++)
for (var j = 0; j < array[i].Length; j++)
result[i][j] = array[array.Length - j - 1][i];
return result;
}
/// <summary>
/// Given a jagged array, it returns a diagonally flipped copy.
/// </summary>
/// <param name="array">The two dimensional jagged array to flip.</param>
public static T[][] FlipHorizontally<T>(this IEnumerable<T[]> array) =>
array.Select(x => x.Reverse().ToArray()).ToArray();
}

View File

@ -1,30 +1,18 @@
using System;
using System.Linq;
using aoc2020;
using System.Reflection;
namespace aoc2020
{
internal static class Program
{
private static void Main(string[] args)
{
var days = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.BaseType == typeof(Day))
.Select(t => (Day) Activator.CreateInstance(t))
.OrderBy(d => d.DayNumber);
var days = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.BaseType == typeof(Day))
.Select(t => (Activator.CreateInstance(t) as Day)!)
.OrderBy(d => d.DayNumber);
if (args.Length == 1 && int.TryParse(args[0], out var dayNum))
{
var day = days.FirstOrDefault(d => d.DayNumber == dayNum);
if (day != null)
day.AllParts();
else
Console.WriteLine($"Day {dayNum} invalid or not yet implemented");
}
else
{
foreach (var d in days) d.AllParts();
}
}
}
}
if (args.Length == 1 && int.TryParse(args[0], out var dayNum))
{
var day = days.FirstOrDefault(d => d.DayNumber == dayNum);
if (day != null) day.AllParts();
else Console.WriteLine($"Day {dayNum} invalid or not yet implemented");
}
else
{
foreach (var d in days) d.AllParts();
}

View File

@ -1,8 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
@ -11,4 +13,11 @@
</None>
</ItemGroup>
<ItemGroup>
<Using Include="System.Collections.Generic" />
<Using Include="System.Collections.Immutable" />
<Using Include="System.Text" />
<Using Include="System.Text.RegularExpressions" />
</ItemGroup>
</Project>

1169
aoc2020/input/day04.in Normal file

File diff suppressed because it is too large Load Diff

824
aoc2020/input/day05.in Normal file
View File

@ -0,0 +1,824 @@
FFBBBFBLRL
BFFFBFBRRR
BFFFBFBLRL
BFFBFBBLRR
BBFFBFFRLL
BFFFBFBRLR
FFFFBBBRLR
BBFFFBBRRR
BBFBFBBRRR
BFFBBBFLRR
FFBBFBBRLR
BBFFBFFLLL
BFFFBFBLLR
FBBFFBFLRR
FBBFBBFRRL
BFFBBBBRRR
BFBBBBFLLL
BFFBFBFLRR
FBBFFBFRRR
FFBFBFBLRL
BFFFFBFLRR
FBBFFFFLRR
BFFFBBBLLL
BFBFFFBRLL
FFBBBBBRLL
FFBBFFBLLR
FBFFBBFLRL
FFBFFBBRRL
BFBBBBFLLR
BFFFFBFRRL
BFFBFFFLLL
FBFFFBFLRL
FBBBFFFLLL
FFBFBBFRLR
FBBBFBFRRL
BFBBBFBLLL
FBFFFBFLRR
FBFBFFBLRR
BFFFFBFLRL
FBFBFFFRRL
FBBFBFBLRL
FBBFFBFLLL
FBFBBBBRRR
FBBBBBFLRR
FBBBFBBLLR
FFFBFBFRLL
FFFBBFFLRR
BFBBFFBRRL
FFBFBFBRRL
FBFBBBBLRR
BFFBBFFLLL
FFFBFBBRRL
BFBBFFFLRR
FBFBFBFLRL
BFBFFBFLLL
FBBBFBFRLR
FBBBFBFLLL
BFBFFFBLRR
BFFBFBFLRL
BFBBFFFRRR
FFFBFFFRLR
FFFBBBBRLL
FFBBBBBLLL
BFBBBFBRLL
FFFBBBFLLR
BBFFFFFRRL
FBFBBFFRLL
BFFBFBFRLR
FBFBBFFRRL
FBFBBFFLLL
FBFBBBBRLL
FBBFFBFLRL
BFFBFBBRRL
FBBFBFBRRL
FFFBBFBLRR
BFFBBBFRLL
FBFFFFFRRR
BFFFFBBLRR
FBBFFFBRRL
FBBBBBBRRR
FFFBBFFLLR
BBFBFFFRRL
BBFFFFBRRL
FBBBFBFLRL
FFBFBBFRRR
FFBBBFFLRL
BFFBFFFLRL
BFBFBFBRRR
BFBBFFBRLL
BFFFFBBLLR
FBBBFBBLRR
BFFBFFFLRR
BFFFBFBLLL
FBBBBBFRRR
BFFBFBFLLL
FBFFBFFRRL
BFBBFBBRRR
FBFFFBFRRL
BFBBBFBLLR
BFBBBBBRRR
FFFBFBFRRL
BFFFBFFLLL
BFFFFFFLRR
FFBBFFFRLL
BFFBFFFRRR
BBFFBBFLRL
FBFBBBBLLR
FFFBFFBLRL
FFBBBBBRLR
FBFFBFFRRR
BFBBFBBRLR
FBFBBBBLRL
BFBBFFFLLR
FBBBFBBLRL
BFFBBBFLLR
FFFBBBBRRR
BBFBFFFLRL
FBFBBFFLLR
BBFFFFBLRR
FFBBFFBRRR
FFBBBFBRLL
BFFFFBFLLL
BBFFBFBRLR
FBFBBFBRRL
FFFBBBFRRR
FBBBFBBRRL
FFFBFBBRRR
FBFFBBBRLL
FFBFBBBRLR
BFFFBBBRLL
FBBFBBBRLL
FBBBBBBLLR
FBFBBFBLRR
BFBFBFBLRL
FFFBFFBRLR
BFFFFFFRLL
BFFBFBBLRL
FBFFBFFLRR
FBFBBBBRLR
BBFFFBBLRL
FBBBFBBRRR
BBFBFBFRRR
FBFBFFFLRR
BBFBFFBLLL
FBBBFFFLLR
BFBFFBFRRL
BFBBBBFRLL
FFBFBFFLRL
FBBBBFBLRR
FBBBBFFLLR
FFBBFFBLLL
FBFFFBBRRR
FFBBBBFLLR
BFBFBFFRRL
FFBBBBBLRR
BFFFFFFRRL
BBFBFFFLRR
BFFBFBFRRL
BBFFBBBRRR
BBFFBFFLRL
FFFBFFBRRR
BFBFBBFRLR
BBFBFBBLRR
BFBBBBBRLL
FBBBFFBRRL
FBBBBBBRLL
FBBFBBFRLR
FBBFFFFRRL
BFBFFBFRRR
BFBBFFFLLL
FBFFBFFLLR
BFBBBFBLRR
BFFBBBBRLL
FBBBBBBLRR
FFBFFBFRRL
BBFFFBBRLL
FBFFFBBRLL
FFBBFFFLRL
BFBBBBFRRL
FFBFFBBRRR
BFFBBFBRLL
FFBFFFBLLR
FFBFFFFLLL
FBBBBBFLLR
FBFBFBBLLR
FBFBBFBRRR
BFBFFFFLRR
BFBBFFBRRR
FBFBFFFRRR
FFBFBBBRLL
BFBBBFBRRL
BFFBBBFLRL
BBFBFFFRLR
BBFBBFFLRR
FBBFFBBRRL
FBFBBBFLRL
FFBFBBFRRL
BFBFFBFLRL
BFFFBFFRLR
BBFBBFFRLR
FFBFBFBLLL
BFBFFBBRRR
BBFFBBBRRL
FBBBFBBLLL
FFFBFFFLRL
BBFFBFBLLL
BFBBFFFRLR
FBBBBFBLRL
BFBFBBBLRL
FFFBFBFRLR
FBFFFFBRRL
BFFBBFFLLR
FBFFFFFRRL
FBBFFBFRLR
FBBBFBBRLL
FBFFFFFLLR
BFBFBBBLLR
FFBBBBBRRR
BFFFBBFLLR
FBFBBFBLLL
FBBFFFFLLR
FBFFFFBLRL
FBBBFBBRLR
FBBFBBFLRR
FBBBBBBRRL
BBFBFBFLRL
FFBBBBFRRL
BFBBFBFLRL
BFFFFFFRRR
BBFBFBBLRL
BFBFFFFRLL
BBFFBFBRRR
BFBFFBBLLR
FBFBFFBRRL
FFBBFBFLLL
BFBFBBBRLR
FFBBFBFLRL
BBFFFFFRRR
FBFFFFFLRL
FFBFBFBRLL
BBFFFFFLRR
BBFFFBBRLR
FBFBBFBRLR
FBBBBBFLRL
FBBFFFBLRR
FFFBBFBLLL
BBFBFFBRLL
FFBFBFBLLR
BFBBFBBRRL
BFFBFFBLLL
BBFFBFFRLR
BBFFBBFLLR
BFFFFFBLRL
FBBFFFBLLL
FBFFFFBLLR
FBBFBFFRRL
BFBBBFFRRL
BBFFFBFLRL
FBFBFBFLLR
FBFFFBBRLR
BBFFBFBRLL
BBFFBFFRRL
BBFFBBFRLR
FBFFBFBRLL
BFBFBBFRRR
BFBBFBBLRL
FFBBFFBRLL
FBFFBFBRLR
BBFBFBBLLR
BFBBBFFRLL
FFBFFBFLLL
BFBFFBFRLR
BFFFBBFLRL
BFFFBBBLRL
BFBBBFFLLR
FBBFBBFRRR
BFFBFFBRRL
BFBFFBBRRL
BFBBFBFRLL
FBBFFBFRLL
FFBBBBFRLL
FBBBFFBRLL
BBFFBFBLRL
BBFFFFFLLL
BBFFFFBRRR
FBBBBFBRLR
BFFBFFBRRR
FFBFBFFRLL
FFFFBBFRRR
BBFBBFFLRL
FFFBBBFLRR
BFFBFBBLLL
BFBBFFFLRL
BFFBFFFRLL
BFBFFBBRLL
FFBBBBFLLL
BFFBFBBRRR
BFBBBBFRRR
FFBFFFFRLR
BFBFBFFRRR
BFBFBBBLRR
FBBBFFFLRR
FFBFFFBRRL
FBBFFFBRLR
FFFBFFBRLL
BFBBFFBLLR
FFBBFBBLRL
FFBFFFBRLR
BFBBFFFRLL
FBBFBBBLLL
FBBFFFFLLL
FFBFBBBRRR
FFFBBBFLRL
BBFFBBFLRR
FFFBFFFRLL
FFBBFBFRRR
FBFFBFBRRR
BFFBBFBLRL
FFFBBBFRLL
FBBBFFBRRR
FFBBBBFLRL
FFBFBBBRRL
FBFBFFBRRR
FBFFFBBLLL
FBBFFFFLRL
BFFFFBBRLR
BFBBBBBRLR
BBFFFBBRRL
BBFBFBFRLR
FBFFFFFLLL
FBFBBBBRRL
BFBFFFBLRL
FFFFBBBLLR
FFBBBFBRLR
FBBFFFFRRR
BBFBFFBLRL
BBFFFFBLRL
BFBFFBFLRR
FFFBBBBLRR
FBBBBBBLRL
FBBFFBFRRL
FBFFBBBRRL
FBFFBBFRRL
FFFBFBFLLR
BBFFFFFRLL
FFFBBBBLLR
BBFFBBBLRR
FBFBFFBLLR
BFBBFBBRLL
BFFFFFBRLR
FFFBFBBLRR
BFFBBBBLLL
BFFBBFBLLR
FBBBBBFRLR
BBFBFFBRLR
FBFFBFFLLL
FBBFBBBLLR
FFFFBBBRRL
FBBFBBFRLL
BFBFFFFRLR
FFFFBBBRLL
BFBBBFFLLL
BFBFBFFRLR
FBFBFFBRLL
FBBBFFFRLL
FBFBFFBRLR
FBBBBFFRLR
BBFBFFFRLL
BFFBBBBRLR
BFBFFFFRRL
FBBBFFFRRR
FFBFFBBRLR
FFBBBBFLRR
BBFBBFBRRL
BFFBFFBLLR
BBFBBFBRLL
FBFFBFBLLR
BBFBFBFLLR
FBFBFBBRLR
BBFBBFFRRL
BFBFFFBLLR
BFBFFBBLLL
FBFFBFBLRR
BFBBBBBLLL
BFFFBFFRRL
BFBBBFBRLR
BBFFFBFRLL
BFFBFFBRLL
BBFBBFFLLL
BFBBBBBLRR
FFFBFFBLLL
BBFFBBBRLL
FFFBBBBLRL
FFBBBFBLLR
FFBBFFBLRL
FFBBFFBLRR
FBBBBBBRLR
BFFFBBBLLR
FBBFBFBLRR
FBFBFBFRLR
FFBFBBBLRR
FFFFBBBLRL
FFFBBFFRLL
FFFBFFFLRR
BBFFFFBLLR
BFBFBFFLLL
FFBBBFFRLR
FBBFBFBRLL
FFBBBFBLLL
FBBFFFBLLR
BBFBFFBLRR
BFFFFBBLLL
FBBBFBFLLR
FFBBBFFLRR
BFFBBBFRRR
FFBFFFBLRR
FBBFFBBRLR
BFBBFBFLRR
FFFBBFFRRR
FFBFFFFRLL
FFFBFBFRRR
FFBFFFFRRR
FBBFBBBLRL
FFFBFBBRLR
FBBFFFBRLL
FFBFBFFRLR
FBBBBFFRRR
BFBFFBBLRR
FBFFBBBLRL
FBBFBBFLLR
BBFFFFFLRL
BFBBFBFRLR
BFFBFFBLRR
FFBFFFBRLL
FBFBFFBLLL
BFFFFFBLLL
FBFFBBFLLL
BFBFFBBRLR
FBFBBFBRLL
FFBBFBBRLL
BFFFBBBRLR
BFFFFFFLRL
BBFFFBBLLR
BFBFBBFLRL
FFBBBFFRRL
BBFFFBFLLL
BBFFBBBLLL
BBFFBFBLLR
FBFBBBFRLL
FFBBBBBRRL
FFBBBFFLLR
FFBFBBBLRL
BFFBFFBLRL
BFFFBFFRRR
BFBFFFBRRR
FFFBBBFRLR
FFBBFBBLLR
BFFFBBFLRR
FFBBBBFRRR
BFBFBBFLRR
FFFBBBBRRL
BFBFFBFRLL
FBFFBFFRLR
FBBFFFFRLR
BFBBBBBLRL
FFBBFBBLLL
FFBFBBFLLR
BFFBBBBLRL
BFBFFFFLRL
BBFFFBFRRL
FFBFFBBLRR
FBFBFBFRRR
BBFFFBFRLR
BFBBBFFLRR
BBFBFFBLLR
BBFBBFBLLR
FBFFFBFRLL
BFBFBBBLLL
FBBFBFFLRL
BFFFBBBLRR
BBFBFFBRRR
FBBFFFFRLL
BFFFBBBRRL
FBBFBBBRRR
FBBFFBFLLR
BFFFFFBRRL
FBFFFFBRLR
FBFBFBBRRR
FBFBFBFRLL
BFFBFFFRRL
FFFBBFFRRL
BFBFFFBRLR
FBBFBFFLRR
BFFFBFBRRL
FBFBBBFLLR
FBFBBBFRRR
FBFFBFBLRL
FFFFBBBRRR
FFBBBFFRRR
FFFBFBFLLL
BFBBFFBLRR
FBBFBFBRRR
BBFFBBFRRL
BBFFBFFRRR
BBFFBFFLRR
FBBFFBBLRR
BFBFFFFRRR
BFFBFBBRLR
BFFFBBFRLL
BFBFBBBRLL
BBFFFBBLRR
FFBBFBFLRR
FBFBBBFLLL
BBFFBBBLLR
FFBBFFFLRR
FBFFFBFRRR
BFBBFBBLLR
FFBBFBFRLR
BFBFFFFLLR
FBBBFBFRRR
BFBBFBFRRR
BFFBFBFRRR
FFBFBBBLLR
FBFBFFFRLR
FBBFBFBLLL
BFFBBFFRLL
FBBBBFBLLR
FFFBBBFLLL
BFBFBBFRLL
FFFBFBFLRR
FBBBBFBLLL
FFBBFBFRLL
BBFFBBFRRR
FFBFFBFRLL
FBFBFBBLLL
FBFFBBBLLR
FFFBFBBLRL
FFFBBFBRRR
FBFFBFFLRL
FBBFBFBLLR
BFBBBBFRLR
FBBFBFBRLR
FFFBFFBRRL
FBFBBFBLLR
BFFBFFFRLR
FFBFBFBLRR
BFBFBBBRRL
FBFFFFFLRR
FFFBBFFLLL
BFFFBBFRLR
FFBFFBFRLR
BBFFFFBRLR
BFFBFFBRLR
BFBFBFBRLR
FFBFFBBRLL
FBBBFFBLLL
BFBBBBBLLR
BFFFFBFRLL
FBBFFFBRRR
FFFFBBBLLL
FBFBFBBRRL
FBFFFFFRLR
FBFFBBFRRR
BFFBBFFLRL
BFBFBBBRRR
FBBFBFFRLR
BFFBBFBRRL
BFBBFBFRRL
FBFFFBBRRL
FBBFFBBLLL
FBFBFBBRLL
BFFFFBFRRR
FBBBFFBLLR
FBBFBBBLRR
FFBFBFFLLR
FBFFBFFRLL
FBBBFFBRLR
FBFFBBBLLL
FBFBFBFRRL
BBFBBFBLLL
FFBFBFFRRL
FBBBFFFRRL
FBFFBBFLRR
FBFBFFFLLR
BFFFFBBLRL
BFBFBFFLRL
FBFFFFBLLL
FBBBFFFLRL
BFFBBBBLLR
BFFBBBFLLL
BFFBBFBRRR
FBBBFBFRLL
BBFBFFFRRR
BFBBBFFRLR
FFBFBFBRRR
FBFFBBFRLL
FFFBBBBLLL
FBFFBFBRRL
BFFFFFBLLR
BFBFFFBLLL
FBFBBBBLLL
BFFBBFFRRL
BBFFBFBRRL
FBBFBFFRRR
BFBBFFBLLL
BFBFFBBLRL
BBFFFFFLLR
FFBFBBFRLL
FFBFFBFLLR
FBBFFBBLRL
BBFFFFBLLL
BFFFBFFLLR
FBFFFBFLLL
BBFBFBFLLL
FFBFFBBLRL
FBFFBBBRLR
BFFFFBBRRL
FFBBBBBLLR
FFBBFBFRRL
FFBFBBFLRL
FFBFBFFLRR
FFFBFFBLLR
BBFBFBBRLL
BFBBBBBRRL
FBFBBBFRLR
FBFBFFFRLL
BFFFFFFLLR
FBBBBFFLLL
FBBBFFBLRR
BFFFBFBLRR
FBBBFFFRLR
BFFFFFBRLL
FBBBBFBRRL
BFBBBFBLRL
FFBBFBBLRR
BFFBBFBLLL
BFBBFFFRRL
FBBBBFFRRL
BFFFBBFRRR
FFFBFFFRRR
FBFBBFBLRL
BFBBFFBLRL
BBFBBFBRLR
BBFBBFBLRL
FFBFBFFRRR
BBFFBBFLLL
FBBBFFBLRL
FBBFFBBRRR
BFFBFBFLLR
FBFBFBBLRR
BFFFBBBRRR
FBBFBFFLLL
FBFBBFFLRR
FFBBFFBRLR
FFBBBBBLRL
FFBBBFBRRL
BFBFBFBLRR
FBFFFFFRLL
BFBFBBFLLL
BBFBFBBRRL
FBFBFBFLLL
FFBFFBBLLR
FFFBFFFLLR
BFFFBFBRLL
FBBFFBBRLL
FBBFBFFLLR
BFFFFBFLLR
BFFFFFBLRR
BBFFFBFLRR
FBFBBFFRLR
BFBBFBFLLL
BFFBBBFRLR
BBFBFBBRLR
FFBBFBFLLR
BBFBFBFRRL
FBFBFBBLRL
FBFFFBBLRR
FBFBBFFRRR
BFFFFBFRLR
FBFFFBFLLR
FFBBBFFRLL
FBFBFFFLRL
BFFFBBFLLL
FFFBBFBRLL
FFBBBFFLLL
BFBBFBFLLR
FFBFBBFLLL
BFFBBBBRRL
BBFFBBBLRL
FBFFFFBLRR
BFBBFBBLRR
BFBBBFBRRR
BBFBFFFLLL
BFFBBFFRLR
BFFFBFFLRL
FBBBBFFRLL
FBFFBBFLLR
FBFBFFFLLL
BFFBBFFLRR
FFBBFBBRRL
BFBFBBFLLR
FFFBBFBLRL
FFBBFFFRRR
BBFFFBFRRR
FBBBBFFLRL
FFFBFBBLLL
FFFBBFFRLR
FBFFFBBLRL
BBFBFBFRLL
BBFFBBBRLR
FFFBBFBRLR
BBFBBFFRLL
BBFFFFFRLR
BFBFBFBLLL
BBFBFFFLLR
FBFFBFBLLL
BBFFFBBLLL
FBFFFFBRLL
BBFFFFBRLL
FFBFFFBRRR
BFFFFFFRLR
BBFFBBFRLL
BFBFFFBRRL
FFBBBBFRLR
FFBFFBFRRR
BBFBFBFLRR
FFBFFBFLRL
BFBFBFFLLR
FBBBBBFLLL
FFBFFFBLLL
FFBBBFBLRR
FFFFBBFRRL
FBFBBBFLRR
BFFBBFFRRR
FBFBBBFRRL
BFFFFFBRRR
BFBFBBFRRL
BFBFBFBRLL
BFBFFFFLLL
FBBBBBFRRL
BFBBBBFLRR
BBFBBFFRRR
BFFBFFFLLR
BFBBFBBLLL
FBFFFFBRRR
FBFFFBFRLR
BFFBFBBRLL
FFBBBFBRRR
FFBBFFFLLR
BBFBBFFLLR
BFBBFFBRLR
FFFBBFFLRL
BFFFFFFLLL
FFBBFFFRLR
BFFBFBFRLL
FFBFFBBLLL
BFFFBFFLRR
FFBFFFFLRR
FBBBBFBRLL
BFBFFBFLLR
FFBBFFBRRL
BFFBBFBLRR
FFBFFBFLRR
BFFBFBBLLR
FBBFBBFLLL
FBFFBBBLRR
BBFFBFFLLR
BFBBBFFRRR
FFFBFFFRRL
FBBFBBBRRL
FFFBFBBLLR
BFFFBFFRLL
BBFBFFBRRL
FFBFFFFRRL
FFBFBFBRLR
FBBFBFFRLL
FFFBBFBLLR
FFFBBBFRRL
FBBBBBFRLL
BFFFBBFRRL
BFBFBFBRRL
FBBBBFFLRR
FFFBBFBRRL
BFFBBFBRLR
BBFBFBBLLL
FFBFFFFLLR
FFBFFFFLRL
FFFFBBBLRR
BBFBBFBLRR
FBBBFBFLRR
FFFBFBBRLL
FBFFBBFRLR
FFBFBBFLRR
FFFBFBFLRL
FFFBBBBRLR
FBBFBBBRLR
FBFBFFBLRL
BFBBBBFLRL
BFFFFBBRRR
BFFBBBFRRL
BFFFFBBRLL
BFBFBFFLRR
BBFFBFBLRR
FBBFBBFLRL
FFFBFFFLLL
FBBBBFBRRR
FBFFFBBLLR
FBBFFBBLLR
FFBBFFFLLL
FFBFBFFLLL
FBFBFBFLRR
BBFFFBFLLR
BFFBBBBLRR
FBBFFFBLRL
FFFBFFBLRR
BFBFBFBLLR
FBFBBFFLRL
BFBFBFFRLL
FFBFBBBLLL
FBFFBBBRRR
FFBBFFFRRL
FFBBFBBRRR
FFBFFFBLRL
BFBBBFFLRL

2061
aoc2020/input/day06.in Normal file

File diff suppressed because it is too large Load Diff

594
aoc2020/input/day07.in Normal file
View File

@ -0,0 +1,594 @@
wavy green bags contain 1 posh black bag, 1 faded green bag, 4 wavy red bags.
dotted chartreuse bags contain 1 light beige bag.
dark white bags contain 2 dotted white bags.
clear aqua bags contain 4 posh orange bags, 4 pale blue bags.
faded green bags contain 2 plaid orange bags, 4 drab green bags, 4 pale aqua bags, 4 drab coral bags.
drab lavender bags contain 2 shiny white bags, 2 muted orange bags, 1 mirrored crimson bag, 1 dotted aqua bag.
dull maroon bags contain 1 plaid plum bag, 5 plaid orange bags, 4 posh maroon bags.
pale lavender bags contain no other bags.
plaid cyan bags contain 2 posh violet bags, 5 dim turquoise bags, 2 dark tomato bags.
dull plum bags contain 5 muted red bags, 4 dotted salmon bags, 1 dull maroon bag.
bright turquoise bags contain 2 dotted chartreuse bags, 3 dull tan bags, 4 light gray bags, 3 mirrored red bags.
posh violet bags contain no other bags.
faded coral bags contain 1 wavy teal bag, 4 wavy cyan bags.
striped turquoise bags contain 3 bright gray bags, 4 bright bronze bags.
muted magenta bags contain 5 light teal bags.
dull lavender bags contain 3 clear orange bags, 3 pale cyan bags, 4 vibrant orange bags, 1 dim chartreuse bag.
pale silver bags contain 3 faded olive bags.
dull turquoise bags contain 4 light gray bags, 4 clear green bags, 2 dull aqua bags, 5 dim white bags.
dim cyan bags contain 4 pale cyan bags, 2 dotted beige bags, 4 drab lime bags, 2 muted silver bags.
wavy plum bags contain 2 drab bronze bags, 3 mirrored yellow bags, 3 vibrant beige bags.
drab lime bags contain 5 muted plum bags.
striped yellow bags contain 3 dark fuchsia bags, 1 clear lime bag, 5 faded turquoise bags.
shiny cyan bags contain 4 clear maroon bags, 1 dim yellow bag, 5 drab red bags.
bright maroon bags contain 2 shiny gray bags, 2 faded indigo bags, 5 muted tan bags.
striped crimson bags contain 5 posh brown bags.
pale green bags contain 1 pale red bag.
shiny blue bags contain 2 clear red bags, 2 dark black bags, 3 dotted silver bags.
mirrored lime bags contain 2 drab violet bags.
mirrored maroon bags contain 4 faded salmon bags, 2 shiny blue bags, 1 pale coral bag.
light bronze bags contain 2 clear red bags, 3 posh lavender bags, 1 clear purple bag, 5 plaid lavender bags.
bright salmon bags contain 2 faded cyan bags, 1 striped blue bag, 1 faded crimson bag.
faded red bags contain 4 dotted purple bags, 1 bright brown bag, 1 pale tan bag, 1 drab teal bag.
pale indigo bags contain 3 pale orange bags, 5 muted bronze bags, 2 pale tan bags, 3 posh fuchsia bags.
pale orange bags contain 2 dotted magenta bags, 5 clear plum bags, 3 dim olive bags, 1 mirrored yellow bag.
drab gold bags contain 4 dotted cyan bags, 4 muted plum bags, 1 vibrant white bag, 4 dull green bags.
mirrored teal bags contain 5 posh turquoise bags, 4 striped purple bags, 5 mirrored blue bags.
dark chartreuse bags contain 1 striped crimson bag, 3 dull purple bags.
posh olive bags contain 2 clear brown bags, 1 faded lavender bag.
muted tan bags contain 1 striped red bag.
drab olive bags contain 2 dim plum bags, 4 mirrored violet bags.
faded lime bags contain 3 dark tomato bags.
dim black bags contain 2 wavy purple bags, 5 mirrored fuchsia bags, 5 drab beige bags.
dotted plum bags contain 2 shiny gold bags, 4 shiny beige bags, 1 clear red bag.
striped red bags contain 5 pale tan bags, 5 pale lavender bags.
drab green bags contain 1 faded silver bag, 3 vibrant plum bags, 2 wavy purple bags, 1 plaid blue bag.
dull orange bags contain no other bags.
posh tomato bags contain 5 dim gold bags, 2 drab coral bags, 4 drab maroon bags, 2 pale indigo bags.
light turquoise bags contain 2 shiny violet bags, 1 dull violet bag.
muted salmon bags contain 2 mirrored teal bags, 1 mirrored bronze bag.
bright red bags contain 1 dotted orange bag, 2 faded gray bags, 2 dim white bags, 4 plaid tomato bags.
dotted tan bags contain 3 clear red bags, 5 pale coral bags, 3 clear turquoise bags, 2 muted beige bags.
muted gold bags contain 2 drab turquoise bags.
pale magenta bags contain 3 dotted cyan bags, 4 mirrored lime bags, 2 shiny cyan bags.
pale brown bags contain 2 dull silver bags, 3 wavy tomato bags.
shiny lime bags contain 1 mirrored gold bag, 5 dull magenta bags, 5 shiny fuchsia bags.
dark bronze bags contain 2 light green bags.
light magenta bags contain 4 pale crimson bags, 3 drab plum bags.
dark gray bags contain 5 light maroon bags.
plaid orange bags contain 5 plaid gray bags, 1 dark tomato bag, 2 drab chartreuse bags, 4 clear red bags.
posh purple bags contain 2 posh blue bags.
drab turquoise bags contain 3 clear brown bags, 2 mirrored red bags, 2 muted green bags.
dark fuchsia bags contain 4 light orange bags.
dim lime bags contain 1 dotted olive bag, 5 posh blue bags, 3 dim gold bags, 2 drab lime bags.
drab tan bags contain 4 clear violet bags.
posh fuchsia bags contain 5 drab black bags, 4 plaid purple bags, 3 dim white bags.
clear orange bags contain 5 muted tomato bags, 1 dotted white bag, 5 bright fuchsia bags.
posh crimson bags contain 1 mirrored chartreuse bag, 4 pale gray bags.
plaid tan bags contain 1 light orange bag.
posh brown bags contain 1 clear lavender bag, 4 clear yellow bags.
mirrored salmon bags contain 2 dotted plum bags, 5 plaid lavender bags, 4 drab olive bags, 5 shiny violet bags.
striped bronze bags contain 5 light blue bags.
dotted black bags contain 4 plaid coral bags, 2 drab maroon bags, 4 dotted red bags.
light gray bags contain 3 posh magenta bags, 5 wavy coral bags, 2 vibrant red bags, 2 wavy olive bags.
pale turquoise bags contain 2 light olive bags, 1 dark silver bag, 5 plaid yellow bags.
striped fuchsia bags contain 3 wavy aqua bags.
light teal bags contain 5 dotted turquoise bags, 5 muted tomato bags, 1 dotted gray bag, 1 pale lavender bag.
wavy beige bags contain 5 dim gray bags, 4 bright aqua bags.
light salmon bags contain 2 clear plum bags.
shiny magenta bags contain 4 dim fuchsia bags.
clear white bags contain 4 dim white bags.
wavy gray bags contain 1 vibrant beige bag.
plaid bronze bags contain 5 plaid plum bags, 3 drab olive bags, 2 drab green bags.
drab plum bags contain 5 drab chartreuse bags, 5 plaid purple bags, 2 drab teal bags, 1 drab coral bag.
dotted salmon bags contain 4 dim fuchsia bags, 4 striped cyan bags, 3 dotted white bags, 4 mirrored violet bags.
striped magenta bags contain 1 faded teal bag, 1 drab red bag.
posh magenta bags contain 4 faded green bags, 2 dull magenta bags.
striped lavender bags contain 1 striped black bag, 4 wavy turquoise bags, 5 dull purple bags, 4 posh violet bags.
mirrored lavender bags contain 1 wavy turquoise bag.
dim violet bags contain 3 muted green bags, 1 striped plum bag, 4 dull coral bags, 4 wavy chartreuse bags.
shiny tomato bags contain 3 bright red bags, 5 wavy beige bags, 5 faded blue bags, 3 muted black bags.
wavy indigo bags contain 2 dull brown bags.
dark tomato bags contain 2 drab olive bags.
vibrant red bags contain 1 plaid tomato bag, 1 muted tomato bag.
vibrant brown bags contain 4 shiny violet bags, 2 mirrored violet bags, 2 dark salmon bags, 5 faded turquoise bags.
dim lavender bags contain 4 dim plum bags, 5 drab maroon bags, 3 dark black bags.
dull lime bags contain 5 bright turquoise bags, 3 vibrant chartreuse bags, 1 pale gray bag.
muted plum bags contain 4 plaid plum bags, 3 dim beige bags, 5 wavy magenta bags.
wavy tan bags contain 3 wavy chartreuse bags, 5 clear orange bags, 2 light blue bags, 2 pale yellow bags.
dim maroon bags contain 2 dull yellow bags, 4 shiny orange bags.
clear violet bags contain 2 clear red bags, 1 plaid blue bag.
dim orange bags contain 4 posh red bags, 3 posh plum bags.
plaid crimson bags contain 5 posh brown bags, 4 vibrant indigo bags, 5 drab teal bags, 1 dotted gray bag.
clear yellow bags contain 1 plaid gray bag.
dotted fuchsia bags contain 2 plaid plum bags, 1 drab chartreuse bag.
dim brown bags contain 1 faded silver bag, 1 faded brown bag, 2 striped cyan bags.
striped aqua bags contain 2 faded purple bags.
striped gold bags contain 3 dotted lime bags.
bright yellow bags contain 2 drab bronze bags, 2 dotted gray bags.
wavy blue bags contain 5 drab olive bags.
wavy turquoise bags contain 3 dotted indigo bags, 2 vibrant plum bags.
dotted purple bags contain 4 light blue bags, 4 wavy gray bags, 5 pale lavender bags.
mirrored gold bags contain 5 wavy silver bags, 3 clear white bags.
dull purple bags contain 3 dim fuchsia bags, 3 clear indigo bags, 4 dotted purple bags.
bright gold bags contain 5 shiny silver bags, 5 dark olive bags, 2 muted yellow bags, 3 vibrant magenta bags.
faded gray bags contain 3 dotted magenta bags, 5 clear lavender bags, 2 faded tomato bags.
dark olive bags contain 1 drab tan bag, 2 striped crimson bags.
light silver bags contain 3 dark teal bags, 4 posh crimson bags, 2 wavy olive bags, 2 dotted fuchsia bags.
light yellow bags contain 3 wavy silver bags.
dotted teal bags contain 3 vibrant orange bags, 2 clear maroon bags.
drab coral bags contain 5 mirrored violet bags.
dim salmon bags contain 4 faded silver bags, 2 plaid cyan bags.
dotted coral bags contain 3 faded gray bags.
vibrant bronze bags contain 4 faded tomato bags, 3 light brown bags, 5 posh lavender bags.
light blue bags contain 3 clear brown bags, 3 posh violet bags, 3 bright brown bags.
plaid fuchsia bags contain 4 striped white bags, 1 mirrored cyan bag.
plaid indigo bags contain 5 bright cyan bags.
dull magenta bags contain 5 muted tomato bags, 4 plaid tomato bags, 1 faded silver bag.
shiny orange bags contain 3 dark coral bags.
wavy white bags contain 2 striped indigo bags, 1 faded orange bag, 2 dull fuchsia bags, 2 vibrant silver bags.
dotted bronze bags contain 5 shiny fuchsia bags, 5 dotted aqua bags, 1 faded aqua bag.
light chartreuse bags contain 3 dull chartreuse bags.
dull salmon bags contain 2 vibrant plum bags.
clear bronze bags contain 1 shiny tomato bag.
faded lavender bags contain 5 pale lavender bags, 2 dull maroon bags, 3 drab beige bags.
dark black bags contain 2 dim fuchsia bags, 3 plaid tomato bags, 3 dull orange bags.
dull violet bags contain 1 striped red bag.
mirrored indigo bags contain 3 mirrored violet bags, 4 faded plum bags, 1 pale tan bag, 2 dotted white bags.
shiny crimson bags contain 2 dim purple bags, 2 dotted purple bags, 2 bright bronze bags.
plaid aqua bags contain 1 plaid tan bag, 1 mirrored orange bag.
drab beige bags contain 1 dull yellow bag.
clear purple bags contain 1 vibrant cyan bag, 2 dim brown bags, 1 dark lavender bag.
dim olive bags contain 5 light blue bags, 1 dull gold bag, 5 faded red bags, 1 dotted purple bag.
mirrored green bags contain 4 wavy beige bags.
dotted silver bags contain 5 wavy fuchsia bags.
dotted blue bags contain 5 pale blue bags.
pale crimson bags contain 1 dim tan bag.
plaid gold bags contain 5 wavy magenta bags, 2 dotted gray bags.
dim crimson bags contain 4 dark lavender bags.
pale tomato bags contain 3 muted red bags, 1 clear lavender bag, 1 clear orange bag, 3 pale red bags.
drab fuchsia bags contain 3 faded red bags, 1 muted silver bag, 2 drab aqua bags.
pale maroon bags contain 5 vibrant lime bags, 1 light crimson bag, 1 posh white bag.
wavy lavender bags contain 3 muted red bags, 2 posh violet bags.
vibrant salmon bags contain 1 dark beige bag.
dark blue bags contain 5 dim brown bags, 3 dark red bags, 1 light fuchsia bag, 5 shiny gold bags.
dark plum bags contain 1 muted aqua bag.
drab crimson bags contain 2 drab turquoise bags, 3 shiny violet bags.
vibrant tomato bags contain 1 light tomato bag, 5 vibrant gold bags.
drab maroon bags contain 2 faded tomato bags, 5 clear olive bags, 3 plaid gray bags.
clear green bags contain 5 striped lavender bags, 4 dim gray bags.
plaid green bags contain 2 shiny blue bags, 1 drab fuchsia bag, 5 dotted black bags, 1 dim plum bag.
mirrored yellow bags contain 2 mirrored violet bags, 5 clear brown bags.
dull aqua bags contain 2 faded tomato bags.
shiny olive bags contain 4 light teal bags, 2 bright white bags.
plaid lime bags contain 3 drab red bags, 2 light crimson bags.
dull green bags contain 5 drab green bags, 4 dotted red bags, 4 shiny olive bags, 4 plaid plum bags.
dull beige bags contain 2 faded tan bags.
light indigo bags contain 3 dotted white bags.
shiny silver bags contain 3 vibrant cyan bags, 1 dim teal bag, 1 striped beige bag, 5 wavy chartreuse bags.
plaid yellow bags contain 3 light beige bags.
striped orange bags contain 1 dotted maroon bag, 5 bright red bags, 3 shiny red bags.
posh indigo bags contain 2 dotted bronze bags.
drab orange bags contain 1 striped crimson bag, 3 dark yellow bags, 3 light turquoise bags, 3 light silver bags.
mirrored chartreuse bags contain 2 dotted magenta bags.
plaid silver bags contain 5 wavy aqua bags, 3 vibrant plum bags, 1 dark black bag.
striped indigo bags contain 2 dotted salmon bags, 1 vibrant beige bag, 1 wavy cyan bag, 5 striped salmon bags.
muted coral bags contain 5 vibrant brown bags, 4 light fuchsia bags.
shiny brown bags contain 2 vibrant violet bags, 3 drab gray bags.
shiny indigo bags contain 5 muted bronze bags.
striped cyan bags contain 3 dim fuchsia bags, 3 dark coral bags, 1 faded red bag, 5 plaid brown bags.
shiny tan bags contain 5 plaid white bags.
clear gold bags contain 3 plaid purple bags, 4 striped black bags, 5 dim turquoise bags, 1 plaid plum bag.
vibrant violet bags contain 2 posh violet bags, 2 pale tomato bags.
muted olive bags contain 2 dark tomato bags.
mirrored tomato bags contain 5 pale black bags.
clear crimson bags contain 1 dim crimson bag, 5 striped blue bags.
drab blue bags contain 1 bright indigo bag.
drab teal bags contain 1 plaid brown bag.
striped brown bags contain 4 dotted orange bags, 4 wavy blue bags.
posh lavender bags contain 4 bright indigo bags, 4 faded bronze bags.
light fuchsia bags contain 1 shiny crimson bag, 2 clear brown bags, 2 striped crimson bags.
dotted violet bags contain 4 dull crimson bags.
vibrant lavender bags contain 2 faded olive bags, 5 shiny tomato bags.
wavy gold bags contain 5 dotted black bags, 2 drab beige bags, 3 dull gold bags.
faded brown bags contain 1 wavy gray bag, 3 plaid teal bags.
bright purple bags contain 1 faded tomato bag.
shiny plum bags contain 2 dim silver bags.
posh beige bags contain 3 bright crimson bags.
posh coral bags contain 4 light chartreuse bags, 5 drab bronze bags, 2 striped aqua bags.
shiny black bags contain 2 posh black bags, 5 clear white bags.
posh white bags contain 1 plaid violet bag.
vibrant chartreuse bags contain 5 clear aqua bags, 4 dotted magenta bags.
faded olive bags contain 2 mirrored fuchsia bags, 5 plaid brown bags.
drab purple bags contain 1 dim olive bag, 5 drab lime bags.
dull yellow bags contain 2 dark coral bags, 3 clear brown bags.
vibrant turquoise bags contain 5 plaid orange bags.
wavy tomato bags contain 3 faded olive bags, 3 bright white bags, 5 dull gray bags.
pale plum bags contain 4 pale coral bags, 4 bright cyan bags, 3 dim brown bags.
faded indigo bags contain 1 clear beige bag, 2 vibrant beige bags.
shiny violet bags contain 4 shiny tomato bags, 2 striped lavender bags.
mirrored purple bags contain 5 dotted red bags, 1 mirrored fuchsia bag, 2 mirrored yellow bags.
faded cyan bags contain 4 drab red bags, 5 wavy purple bags, 2 dim beige bags, 5 faded red bags.
shiny salmon bags contain 5 muted tomato bags, 5 striped olive bags.
clear maroon bags contain 1 dotted magenta bag.
faded black bags contain 5 wavy fuchsia bags, 2 dim olive bags, 1 dark lavender bag.
posh green bags contain 3 mirrored coral bags, 2 drab aqua bags, 4 wavy orange bags.
faded crimson bags contain 1 mirrored cyan bag, 2 dim gray bags, 5 light blue bags, 5 posh maroon bags.
striped tomato bags contain 4 drab lime bags, 2 wavy teal bags, 4 plaid cyan bags, 2 muted fuchsia bags.
light olive bags contain 2 dotted red bags, 2 pale coral bags.
faded gold bags contain 4 shiny green bags, 1 clear beige bag, 2 wavy brown bags, 2 dull tomato bags.
pale bronze bags contain 1 dim lime bag.
dotted gray bags contain 5 mirrored yellow bags.
dark beige bags contain 4 clear turquoise bags, 3 vibrant plum bags, 5 drab maroon bags, 5 clear red bags.
drab magenta bags contain 1 drab maroon bag, 1 clear magenta bag.
vibrant beige bags contain 3 bright fuchsia bags, 1 dull gold bag.
dark teal bags contain 5 clear turquoise bags, 5 dark maroon bags, 4 dotted magenta bags, 3 shiny crimson bags.
mirrored blue bags contain 5 dark black bags, 5 vibrant brown bags, 5 dark aqua bags.
wavy cyan bags contain 4 clear aqua bags, 4 dark aqua bags.
dark turquoise bags contain 1 striped gold bag.
drab silver bags contain 3 plaid bronze bags.
faded beige bags contain 5 wavy cyan bags, 3 dull white bags, 5 dim purple bags, 4 faded brown bags.
faded purple bags contain 3 light white bags, 4 faded brown bags, 4 posh maroon bags.
dotted magenta bags contain 3 posh violet bags.
muted green bags contain 2 dim gray bags, 1 vibrant indigo bag, 4 dotted indigo bags.
bright beige bags contain 1 wavy teal bag, 4 bright cyan bags, 1 clear green bag, 1 posh brown bag.
bright violet bags contain 2 plaid indigo bags.
dim purple bags contain 1 posh maroon bag, 2 drab beige bags, 5 clear brown bags.
clear magenta bags contain 4 pale white bags, 5 dotted chartreuse bags, 2 bright turquoise bags, 4 mirrored red bags.
faded magenta bags contain 1 dull gray bag.
mirrored white bags contain 4 dotted purple bags, 2 plaid purple bags, 2 pale tan bags.
clear salmon bags contain 2 mirrored lavender bags.
light maroon bags contain 1 plaid tomato bag, 5 pale aqua bags.
vibrant tan bags contain 3 bright coral bags, 4 striped turquoise bags, 3 wavy aqua bags, 2 shiny gold bags.
shiny lavender bags contain 2 drab tomato bags, 1 drab plum bag.
dark crimson bags contain 2 pale purple bags, 2 dotted white bags, 3 shiny orange bags, 1 dotted bronze bag.
faded aqua bags contain 3 wavy purple bags.
striped blue bags contain 3 plaid bronze bags, 1 clear yellow bag, 2 clear white bags, 3 wavy teal bags.
mirrored silver bags contain 5 striped salmon bags, 4 drab blue bags, 1 vibrant green bag, 1 muted cyan bag.
drab white bags contain 2 wavy salmon bags.
dull brown bags contain 5 pale plum bags, 3 plaid tomato bags.
bright cyan bags contain 2 clear lavender bags.
faded chartreuse bags contain 4 wavy aqua bags, 5 plaid orange bags, 5 dotted indigo bags, 4 clear yellow bags.
dotted tomato bags contain 4 muted purple bags, 4 dotted black bags.
dim white bags contain 5 mirrored cyan bags, 2 dim fuchsia bags, 2 dark tomato bags, 1 dotted purple bag.
posh orange bags contain 5 drab olive bags, 5 vibrant beige bags.
light coral bags contain 5 light purple bags, 2 wavy tomato bags.
wavy lime bags contain 4 clear brown bags.
mirrored magenta bags contain 2 faded silver bags, 2 dark coral bags.
wavy coral bags contain 4 dull purple bags, 1 dark white bag, 4 posh orange bags.
vibrant gray bags contain 5 dotted aqua bags, 2 dark salmon bags, 2 bright blue bags, 1 dotted white bag.
mirrored olive bags contain 3 dark coral bags, 3 wavy gray bags.
light gold bags contain 2 striped lime bags, 2 dark orange bags.
light cyan bags contain 2 dim turquoise bags, 3 dotted tan bags, 4 shiny crimson bags.
shiny gray bags contain 5 plaid cyan bags, 1 wavy purple bag.
bright plum bags contain 3 muted tomato bags, 1 dim chartreuse bag, 3 dotted indigo bags, 4 shiny olive bags.
vibrant blue bags contain 2 shiny orange bags.
clear lavender bags contain 5 faded red bags, 2 wavy gray bags.
dim yellow bags contain 2 drab aqua bags, 3 dim lavender bags, 1 bright plum bag.
posh gray bags contain 3 light lavender bags.
dull tan bags contain 1 dim gold bag, 2 bright bronze bags, 5 dim plum bags.
plaid brown bags contain 3 dull orange bags, 3 dim plum bags.
muted purple bags contain 5 dark black bags, 1 vibrant lime bag.
shiny coral bags contain 4 dim green bags, 4 dim maroon bags, 2 dim chartreuse bags.
pale gold bags contain 2 dim beige bags.
dim beige bags contain 2 mirrored yellow bags, 5 clear brown bags.
dull chartreuse bags contain 2 faded red bags, 5 posh maroon bags, 5 clear lavender bags.
muted bronze bags contain 5 dim plum bags.
vibrant coral bags contain 1 faded black bag, 3 light green bags, 1 wavy chartreuse bag.
clear turquoise bags contain 2 shiny beige bags, 5 mirrored fuchsia bags.
wavy silver bags contain 5 dim tan bags.
muted red bags contain 4 dull gold bags, 1 plaid brown bag, 1 wavy gray bag.
light tan bags contain 4 dotted yellow bags, 1 dull maroon bag, 1 light beige bag.
bright tomato bags contain 1 muted beige bag.
striped coral bags contain 3 bright coral bags.
dotted lime bags contain 2 dull salmon bags.
mirrored plum bags contain 1 bright fuchsia bag, 1 drab yellow bag, 2 dark plum bags, 2 posh purple bags.
plaid blue bags contain 5 dull gold bags, 4 wavy gray bags, 5 mirrored violet bags.
plaid salmon bags contain 4 dim salmon bags, 1 dotted lavender bag.
clear chartreuse bags contain 5 muted teal bags, 4 clear gold bags, 2 plaid tomato bags.
muted blue bags contain 3 faded tomato bags, 5 striped chartreuse bags.
dim tan bags contain 4 clear lavender bags, 2 clear violet bags, 1 wavy plum bag, 4 pale gold bags.
bright chartreuse bags contain 2 posh silver bags, 1 vibrant plum bag.
plaid white bags contain 1 striped red bag, 3 dim beige bags, 3 plaid bronze bags, 2 dim turquoise bags.
bright coral bags contain 3 shiny gold bags, 2 striped chartreuse bags, 4 light salmon bags, 2 vibrant aqua bags.
clear indigo bags contain 4 posh orange bags, 4 dull gold bags.
bright aqua bags contain 1 shiny orange bag.
faded bronze bags contain 2 pale gray bags, 3 dull gold bags.
shiny green bags contain 1 drab chartreuse bag, 4 light salmon bags, 4 striped gold bags.
drab black bags contain 4 dark black bags, 1 dotted turquoise bag, 3 wavy gray bags, 3 shiny fuchsia bags.
pale yellow bags contain 2 dim green bags, 3 vibrant aqua bags.
dull indigo bags contain 2 striped aqua bags, 4 clear chartreuse bags, 4 dark orange bags, 3 posh magenta bags.
mirrored cyan bags contain 2 dotted purple bags, 5 mirrored violet bags, 2 dotted white bags, 3 bright brown bags.
dark yellow bags contain 4 faded tan bags, 3 dim turquoise bags, 5 muted fuchsia bags, 5 clear salmon bags.
wavy yellow bags contain 2 dim bronze bags, 4 drab bronze bags.
muted white bags contain 1 dotted black bag, 5 bright plum bags, 1 striped cyan bag, 2 clear turquoise bags.
dotted gold bags contain 3 shiny fuchsia bags, 5 muted tan bags, 2 clear fuchsia bags.
light aqua bags contain 5 faded brown bags, 3 pale blue bags, 2 mirrored green bags.
plaid violet bags contain 3 bright yellow bags.
bright silver bags contain 1 drab violet bag, 4 light teal bags.
wavy red bags contain 3 dotted gray bags, 5 drab fuchsia bags, 1 posh blue bag.
mirrored tan bags contain 5 light green bags, 2 plaid gray bags, 4 pale orange bags, 1 shiny violet bag.
muted tomato bags contain 1 wavy purple bag.
faded blue bags contain 3 shiny crimson bags, 1 clear indigo bag.
shiny purple bags contain 5 clear blue bags, 1 vibrant red bag.
posh aqua bags contain 4 striped olive bags, 3 pale maroon bags, 1 dim yellow bag, 1 clear red bag.
striped white bags contain 1 bright cyan bag, 3 dotted orange bags.
striped lime bags contain 1 striped brown bag, 3 dotted chartreuse bags, 3 wavy fuchsia bags, 4 faded magenta bags.
striped tan bags contain 1 pale gray bag, 1 light indigo bag, 2 dark coral bags.
shiny red bags contain 4 dotted gray bags, 1 drab bronze bag, 4 shiny fuchsia bags.
shiny beige bags contain 3 vibrant beige bags, 2 vibrant indigo bags, 3 plaid blue bags.
dim fuchsia bags contain 5 pale tan bags.
plaid tomato bags contain 4 clear red bags.
dull blue bags contain 4 pale turquoise bags.
dull red bags contain 5 posh brown bags, 2 dotted tomato bags, 2 striped gold bags.
pale red bags contain 3 plaid brown bags.
striped maroon bags contain 3 pale cyan bags, 1 dotted cyan bag, 1 dim tomato bag.
light lime bags contain 3 light cyan bags, 4 light olive bags, 4 bright salmon bags, 3 shiny orange bags.
drab brown bags contain 3 dim tomato bags, 2 dark gray bags.
faded yellow bags contain 3 dotted beige bags, 2 muted blue bags, 2 wavy fuchsia bags, 1 dark magenta bag.
bright green bags contain 2 pale cyan bags, 5 plaid bronze bags, 5 wavy orange bags.
wavy bronze bags contain 3 wavy red bags.
dull gold bags contain no other bags.
plaid olive bags contain 4 muted white bags, 4 plaid red bags, 5 wavy red bags, 3 posh indigo bags.
dotted aqua bags contain 3 dim indigo bags, 3 drab coral bags.
pale purple bags contain 1 dotted magenta bag, 3 clear indigo bags, 1 dim turquoise bag, 3 pale blue bags.
faded teal bags contain 3 drab maroon bags, 3 clear tan bags, 1 pale gray bag, 4 bright tomato bags.
drab chartreuse bags contain 2 drab aqua bags, 4 clear indigo bags.
light lavender bags contain 4 faded bronze bags, 1 plaid chartreuse bag.
dim tomato bags contain 2 dull orange bags, 5 shiny cyan bags, 2 muted purple bags, 2 dotted black bags.
faded maroon bags contain 2 faded white bags, 3 dim maroon bags.
pale cyan bags contain 2 plaid brown bags.
muted indigo bags contain 4 mirrored red bags, 1 dotted indigo bag, 4 mirrored maroon bags.
wavy orange bags contain 3 plaid bronze bags.
dull teal bags contain 5 drab red bags, 4 dim green bags, 3 dotted olive bags, 5 pale maroon bags.
dull gray bags contain 5 dark tomato bags, 4 dull magenta bags, 4 dotted red bags, 5 faded brown bags.
vibrant gold bags contain 3 striped beige bags, 5 clear bronze bags.
posh bronze bags contain 3 pale turquoise bags, 4 posh blue bags.
striped plum bags contain 3 pale orange bags, 5 clear tomato bags, 1 light salmon bag.
shiny chartreuse bags contain 4 dim yellow bags, 4 mirrored yellow bags, 2 clear orange bags, 2 bright red bags.
vibrant yellow bags contain 4 clear yellow bags, 2 vibrant olive bags, 5 drab salmon bags, 5 light tomato bags.
dark coral bags contain 1 pale tan bag, 3 dull orange bags, 4 clear brown bags.
dotted cyan bags contain 5 faded aqua bags, 2 dotted lime bags, 1 dim gray bag.
light purple bags contain 5 dotted indigo bags, 2 pale violet bags.
bright bronze bags contain 1 dim turquoise bag.
wavy brown bags contain 5 dotted silver bags.
plaid black bags contain 1 clear magenta bag, 2 faded plum bags.
posh cyan bags contain 5 muted beige bags, 1 clear brown bag, 3 wavy beige bags.
dotted green bags contain 4 faded lavender bags, 2 muted blue bags.
vibrant orange bags contain 1 dark aqua bag.
dark violet bags contain 1 striped fuchsia bag.
dark green bags contain 2 dark white bags, 3 vibrant chartreuse bags, 3 mirrored maroon bags.
shiny aqua bags contain 2 light salmon bags, 5 pale turquoise bags, 1 pale silver bag.
mirrored gray bags contain 2 dim salmon bags, 4 striped chartreuse bags, 5 dull gray bags, 2 bright white bags.
bright black bags contain 1 dark aqua bag, 5 dark red bags, 4 faded tomato bags.
dark purple bags contain 3 striped brown bags.
vibrant plum bags contain 5 dim fuchsia bags, 1 posh orange bag, 1 dotted purple bag, 1 light blue bag.
pale gray bags contain 1 plaid cyan bag, 2 dim white bags, 1 dotted magenta bag, 4 shiny gold bags.
striped green bags contain 2 pale crimson bags, 3 dotted lime bags, 5 posh turquoise bags.
shiny bronze bags contain 5 dark olive bags, 2 vibrant magenta bags, 4 striped silver bags.
muted fuchsia bags contain 5 drab fuchsia bags.
bright olive bags contain 4 pale blue bags, 5 shiny crimson bags.
posh lime bags contain 1 dim plum bag, 3 dim magenta bags, 1 mirrored tomato bag, 2 light lavender bags.
light crimson bags contain 3 clear turquoise bags, 5 dim brown bags, 3 bright cyan bags, 4 plaid tomato bags.
dull silver bags contain 5 wavy silver bags.
clear coral bags contain 5 muted aqua bags.
pale salmon bags contain 3 dark gold bags, 5 wavy orange bags.
pale lime bags contain 3 dim cyan bags, 4 striped turquoise bags, 2 muted aqua bags.
wavy fuchsia bags contain 2 drab beige bags, 1 faded olive bag, 1 dim beige bag, 3 pale orange bags.
clear blue bags contain 1 pale black bag, 2 plaid fuchsia bags, 2 mirrored chartreuse bags, 2 bright brown bags.
muted teal bags contain 5 pale black bags.
muted orange bags contain 4 dim olive bags.
dotted indigo bags contain 3 drab lime bags.
drab yellow bags contain 1 dim beige bag.
muted brown bags contain 2 striped red bags, 4 muted green bags, 3 drab chartreuse bags, 4 dark aqua bags.
posh red bags contain 1 wavy beige bag, 1 wavy tomato bag, 1 faded bronze bag, 1 clear coral bag.
posh gold bags contain 1 dim chartreuse bag, 1 clear lavender bag, 1 bright fuchsia bag, 3 bright magenta bags.
posh salmon bags contain 5 plaid red bags, 1 dim purple bag, 1 bright yellow bag.
wavy black bags contain 5 faded white bags, 3 faded chartreuse bags.
mirrored crimson bags contain 2 plaid gray bags, 2 vibrant tomato bags, 1 dim bronze bag.
light white bags contain 4 dim turquoise bags.
pale violet bags contain 5 dim beige bags.
dim magenta bags contain 4 striped teal bags.
striped teal bags contain 5 drab lime bags, 5 mirrored yellow bags.
dotted brown bags contain 4 shiny gold bags, 3 wavy brown bags, 4 clear brown bags, 1 clear teal bag.
bright orange bags contain 2 plaid violet bags, 3 posh aqua bags, 1 clear tan bag.
shiny gold bags contain 3 dotted magenta bags, 2 shiny beige bags, 3 plaid brown bags, 5 clear indigo bags.
clear olive bags contain 4 drab red bags.
plaid purple bags contain 3 plaid gray bags, 3 dim olive bags, 4 dotted purple bags.
pale teal bags contain 4 wavy cyan bags, 4 posh bronze bags.
muted cyan bags contain 2 light blue bags, 3 shiny purple bags, 3 dotted white bags.
plaid chartreuse bags contain 4 clear lime bags, 4 pale red bags.
wavy crimson bags contain 1 pale gray bag, 3 striped tan bags, 5 muted purple bags.
bright tan bags contain 1 posh purple bag, 1 light chartreuse bag, 3 dark white bags.
dark lavender bags contain 1 dotted beige bag, 2 dark tomato bags.
plaid coral bags contain 5 dotted red bags, 1 dim white bag.
faded plum bags contain no other bags.
dark indigo bags contain 4 drab beige bags, 5 clear red bags, 5 pale red bags, 4 pale blue bags.
striped gray bags contain 5 drab teal bags, 4 muted red bags.
light red bags contain 2 light gray bags, 3 vibrant aqua bags, 1 dotted aqua bag.
clear tan bags contain 5 dull gold bags, 3 dim gray bags, 3 dim white bags, 2 light green bags.
pale aqua bags contain 5 dotted purple bags, 1 drab lime bag, 2 clear orange bags.
vibrant fuchsia bags contain 5 clear turquoise bags, 3 clear red bags, 5 faded green bags.
clear lime bags contain 3 striped red bags, 1 dull maroon bag.
muted gray bags contain 4 muted yellow bags, 4 dotted silver bags, 4 clear orange bags, 5 faded turquoise bags.
dull fuchsia bags contain 1 dark aqua bag.
wavy purple bags contain 4 drab teal bags, 3 light blue bags, 3 mirrored violet bags.
vibrant teal bags contain 2 striped white bags, 4 dull red bags, 3 plaid chartreuse bags, 5 dotted salmon bags.
dotted lavender bags contain 4 dim purple bags, 4 clear orange bags, 4 vibrant beige bags.
clear gray bags contain 4 dotted tan bags, 1 dull gold bag, 4 dull gray bags.
wavy violet bags contain 3 bright blue bags, 3 shiny purple bags, 2 bright fuchsia bags.
dull cyan bags contain 4 clear green bags.
dim blue bags contain 1 light brown bag, 3 faded indigo bags.
bright magenta bags contain 1 dim brown bag, 4 wavy purple bags, 3 dotted red bags.
dark cyan bags contain 4 vibrant maroon bags, 2 wavy salmon bags.
vibrant magenta bags contain 4 plaid orange bags, 1 faded red bag.
bright gray bags contain 5 dotted magenta bags, 3 clear olive bags, 1 bright fuchsia bag, 2 muted silver bags.
wavy maroon bags contain 5 mirrored violet bags, 4 clear orange bags, 5 drab olive bags.
dotted maroon bags contain 5 pale purple bags, 5 faded silver bags, 5 dotted lime bags.
drab indigo bags contain 5 light chartreuse bags.
dark brown bags contain 4 bright red bags.
bright blue bags contain 2 shiny cyan bags.
bright brown bags contain 5 dark coral bags, 5 dim fuchsia bags.
dotted orange bags contain 5 bright fuchsia bags, 2 dull gold bags.
mirrored red bags contain 4 dotted salmon bags, 3 dark red bags, 3 drab teal bags, 4 pale blue bags.
plaid red bags contain 2 light maroon bags, 3 drab tomato bags.
drab violet bags contain 2 vibrant cyan bags.
vibrant olive bags contain 1 clear maroon bag, 3 clear green bags, 5 drab aqua bags.
plaid plum bags contain 3 vibrant plum bags.
dim coral bags contain 2 dull aqua bags, 3 vibrant tan bags, 5 muted fuchsia bags, 1 plaid silver bag.
vibrant green bags contain 4 pale gray bags, 4 posh fuchsia bags, 3 bright lime bags, 5 faded blue bags.
muted beige bags contain 5 drab fuchsia bags.
vibrant maroon bags contain 1 faded aqua bag.
muted yellow bags contain 3 clear maroon bags, 2 striped crimson bags, 4 mirrored maroon bags, 3 vibrant olive bags.
faded salmon bags contain 4 faded olive bags, 1 muted purple bag, 3 dotted yellow bags, 3 dim silver bags.
pale beige bags contain 3 mirrored tan bags.
plaid lavender bags contain 2 bright magenta bags, 4 bright indigo bags, 1 posh tomato bag.
drab aqua bags contain 4 wavy magenta bags, 3 mirrored olive bags, 1 muted tomato bag, 3 posh orange bags.
bright indigo bags contain 3 pale violet bags, 3 dark lavender bags, 4 muted plum bags, 3 striped crimson bags.
clear black bags contain 4 wavy aqua bags, 3 light yellow bags.
drab gray bags contain 1 muted aqua bag, 3 plaid fuchsia bags.
striped beige bags contain 1 vibrant blue bag, 5 dotted tomato bags.
faded orange bags contain 2 mirrored maroon bags.
dark orange bags contain 1 muted maroon bag, 5 drab indigo bags.
mirrored coral bags contain 3 faded aqua bags, 2 drab lime bags.
dim red bags contain 5 muted fuchsia bags.
dark aqua bags contain 3 shiny gold bags, 4 pale blue bags, 3 dull magenta bags.
dim gold bags contain 1 plaid blue bag, 1 posh fuchsia bag.
striped black bags contain 2 shiny gold bags.
shiny turquoise bags contain 4 pale purple bags, 5 faded blue bags.
dim chartreuse bags contain 2 pale coral bags.
drab red bags contain 5 mirrored olive bags, 5 vibrant beige bags.
posh chartreuse bags contain 3 pale violet bags, 3 muted beige bags.
light black bags contain 3 mirrored maroon bags, 5 dull tan bags, 5 posh crimson bags, 3 dark gray bags.
vibrant aqua bags contain 2 plaid coral bags.
pale olive bags contain 5 wavy lavender bags, 2 posh olive bags, 4 dim black bags, 3 drab cyan bags.
mirrored aqua bags contain 3 mirrored violet bags.
muted lime bags contain 4 mirrored cyan bags, 1 drab turquoise bag, 5 wavy fuchsia bags.
dull coral bags contain 4 muted lime bags, 4 dim white bags.
faded tomato bags contain 3 pale violet bags, 4 faded brown bags.
mirrored fuchsia bags contain 3 dotted purple bags, 4 pale lavender bags.
plaid magenta bags contain 3 light plum bags, 3 striped orange bags.
clear teal bags contain 4 plaid blue bags.
faded fuchsia bags contain 1 dull purple bag, 2 bright brown bags.
mirrored brown bags contain 4 faded bronze bags, 5 faded beige bags.
muted silver bags contain 2 dull gold bags, 4 clear orange bags, 2 dotted purple bags, 5 dim olive bags.
dull bronze bags contain 4 shiny cyan bags, 1 posh cyan bag.
dark silver bags contain 1 shiny olive bag, 2 drab aqua bags, 2 striped fuchsia bags, 4 mirrored tan bags.
bright white bags contain 4 dark aqua bags, 5 plaid tomato bags, 5 drab green bags, 4 muted red bags.
dark gold bags contain 2 dim teal bags, 4 shiny fuchsia bags.
dull olive bags contain 5 mirrored orange bags, 3 drab gray bags, 1 shiny turquoise bag, 5 dull cyan bags.
wavy olive bags contain 1 wavy cyan bag.
dotted white bags contain no other bags.
plaid gray bags contain 3 dim beige bags, 2 dotted magenta bags, 5 vibrant indigo bags.
dim bronze bags contain 5 dark aqua bags.
dotted yellow bags contain 2 wavy blue bags.
muted lavender bags contain 2 faded aqua bags.
dim teal bags contain 5 pale gold bags.
posh teal bags contain 1 muted plum bag, 5 clear tomato bags, 1 clear white bag.
faded turquoise bags contain 1 wavy teal bag, 1 plaid red bag.
vibrant lime bags contain 4 vibrant beige bags, 5 drab lime bags.
clear plum bags contain 1 vibrant beige bag.
mirrored black bags contain 5 wavy white bags.
mirrored orange bags contain 1 wavy turquoise bag.
vibrant purple bags contain 2 faded crimson bags, 2 dull red bags, 3 plaid blue bags.
posh maroon bags contain 5 clear orange bags, 5 vibrant indigo bags, 2 drab lime bags, 5 posh orange bags.
plaid maroon bags contain 2 pale silver bags, 5 dotted salmon bags, 1 dotted plum bag, 3 bright olive bags.
posh blue bags contain 1 dark coral bag, 2 vibrant lime bags, 4 pale orange bags, 1 plaid blue bag.
muted black bags contain 2 dim gold bags.
clear red bags contain 5 pale lavender bags, 1 bright brown bag, 5 muted red bags, 4 dull orange bags.
plaid teal bags contain 1 dark coral bag, 3 dull orange bags.
light tomato bags contain 4 dotted white bags, 1 pale blue bag, 1 dull coral bag.
mirrored turquoise bags contain 1 shiny green bag, 1 wavy plum bag, 1 dull orange bag.
pale coral bags contain 2 shiny fuchsia bags, 1 dull gold bag, 5 dim plum bags, 5 dark black bags.
muted aqua bags contain 5 posh maroon bags, 4 dim gray bags, 3 pale aqua bags, 1 light crimson bag.
shiny yellow bags contain 2 faded plum bags.
faded tan bags contain 2 dark maroon bags.
clear fuchsia bags contain 4 light white bags, 5 posh maroon bags.
light brown bags contain 4 dim olive bags, 5 drab chartreuse bags, 5 posh maroon bags, 3 pale violet bags.
muted maroon bags contain 2 wavy silver bags.
wavy aqua bags contain 4 pale purple bags.
mirrored beige bags contain 4 posh brown bags.
drab salmon bags contain 3 striped red bags, 1 dull gray bag, 3 posh white bags.
dotted crimson bags contain 2 light teal bags, 4 bright black bags, 3 drab teal bags.
muted violet bags contain 3 bright coral bags.
dim green bags contain 1 drab violet bag, 5 dotted beige bags.
striped salmon bags contain 4 dull chartreuse bags, 2 dark indigo bags.
dull black bags contain 3 dotted silver bags.
shiny maroon bags contain 3 vibrant lavender bags, 3 clear lavender bags, 4 dull teal bags, 5 wavy maroon bags.
faded white bags contain 1 plaid silver bag, 3 pale gold bags.
light orange bags contain 3 pale red bags, 3 dull purple bags, 3 bright cyan bags, 4 dim lavender bags.
posh plum bags contain 1 clear silver bag, 2 clear maroon bags.
vibrant indigo bags contain 3 pale lavender bags, 5 dotted purple bags, 5 dotted white bags, 2 wavy magenta bags.
dotted beige bags contain 3 muted tomato bags, 3 clear brown bags, 1 plaid gray bag, 2 faded olive bags.
dim plum bags contain no other bags.
pale white bags contain 3 vibrant beige bags.
wavy salmon bags contain 1 dim black bag, 4 faded gray bags, 5 dim maroon bags.
pale chartreuse bags contain 5 mirrored white bags, 4 posh teal bags, 2 muted plum bags.
pale tan bags contain no other bags.
vibrant black bags contain 4 vibrant tan bags.
mirrored bronze bags contain 5 pale aqua bags, 2 wavy olive bags, 1 posh olive bag.
bright teal bags contain 2 dark lavender bags, 5 muted fuchsia bags.
striped silver bags contain 5 dull cyan bags, 5 striped teal bags, 2 posh blue bags.
shiny white bags contain 3 shiny violet bags, 3 dotted cyan bags, 3 dotted purple bags.
dark salmon bags contain 5 dotted lime bags, 1 pale orange bag, 1 vibrant red bag, 5 wavy purple bags.
vibrant crimson bags contain 4 clear red bags, 4 faded gray bags.
pale blue bags contain 5 striped cyan bags.
drab bronze bags contain 1 drab teal bag.
wavy magenta bags contain 4 vibrant beige bags, 4 bright fuchsia bags, 1 mirrored yellow bag, 4 dim fuchsia bags.
faded violet bags contain 4 wavy gray bags.
drab cyan bags contain 1 light gray bag, 5 plaid bronze bags, 5 dull aqua bags, 2 vibrant gray bags.
dotted turquoise bags contain 2 mirrored indigo bags, 4 plaid plum bags, 4 faded red bags, 3 dim gray bags.
dotted olive bags contain 4 vibrant beige bags.
posh turquoise bags contain 1 light fuchsia bag, 5 plaid red bags, 5 bright coral bags.
dull tomato bags contain 5 light blue bags, 2 plaid plum bags, 3 dotted lime bags.
pale fuchsia bags contain 3 drab orange bags, 4 bright lime bags, 3 pale tan bags.
drab tomato bags contain 2 posh magenta bags, 3 vibrant fuchsia bags, 3 dim fuchsia bags.
vibrant silver bags contain 1 posh turquoise bag.
pale black bags contain 3 dark coral bags, 3 dim plum bags, 4 shiny beige bags.
wavy chartreuse bags contain 3 drab violet bags, 1 vibrant orange bag, 2 dim gray bags.
dull crimson bags contain 3 mirrored plum bags, 2 dotted orange bags, 3 faded brown bags.
clear beige bags contain 4 wavy tomato bags, 1 muted lavender bag, 5 bright magenta bags, 3 dotted indigo bags.
shiny teal bags contain 3 drab red bags.
bright lavender bags contain 4 drab fuchsia bags, 4 vibrant olive bags, 2 clear olive bags.
posh tan bags contain 5 drab crimson bags, 5 bright lavender bags.
dim turquoise bags contain 2 dim fuchsia bags.
light violet bags contain 4 wavy tomato bags, 5 dark green bags, 1 vibrant violet bag.
bright crimson bags contain 2 posh white bags.
striped olive bags contain 3 light indigo bags.
muted crimson bags contain 1 wavy magenta bag, 1 mirrored fuchsia bag.
muted chartreuse bags contain 5 faded tan bags.
dull white bags contain 5 faded red bags, 5 dim plum bags.
bright lime bags contain 5 posh blue bags, 2 pale aqua bags, 3 light red bags.
shiny fuchsia bags contain 4 faded olive bags, 2 dim turquoise bags, 1 plaid blue bag.
faded silver bags contain 2 muted red bags, 5 pale purple bags.
light plum bags contain 1 vibrant aqua bag.
dark magenta bags contain 4 striped purple bags, 5 bright lime bags, 2 dull magenta bags, 2 dim black bags.
clear cyan bags contain 3 bright brown bags, 3 mirrored gold bags, 2 faded plum bags, 5 shiny purple bags.
plaid turquoise bags contain 5 posh orange bags, 4 light gray bags.
clear brown bags contain 1 plaid brown bag, 5 posh violet bags.
posh black bags contain 3 dark coral bags, 1 pale cyan bag, 2 faded gray bags.
mirrored violet bags contain no other bags.
bright fuchsia bags contain no other bags.
striped chartreuse bags contain 4 pale lavender bags, 2 wavy gray bags, 2 pale violet bags.
dark tan bags contain 3 dotted white bags.
dim gray bags contain 5 dim beige bags.
plaid beige bags contain 4 wavy lavender bags, 4 clear lime bags, 3 posh magenta bags, 3 dotted crimson bags.
dim aqua bags contain 3 wavy cyan bags.
wavy teal bags contain 5 drab aqua bags, 5 vibrant beige bags, 1 plaid tomato bag.
dark red bags contain 1 drab fuchsia bag, 1 pale gold bag, 5 dark tomato bags, 5 shiny beige bags.
vibrant white bags contain 5 wavy aqua bags, 2 muted cyan bags.
muted turquoise bags contain 2 faded crimson bags.
dark maroon bags contain 4 vibrant orange bags.
dotted red bags contain 4 dark coral bags.
striped violet bags contain 4 drab teal bags, 1 pale gray bag.
light green bags contain 1 pale orange bag, 3 dim fuchsia bags.
striped purple bags contain 4 pale black bags.
clear tomato bags contain 4 dark white bags.
dim indigo bags contain 3 pale tan bags, 2 mirrored cyan bags, 5 dotted crimson bags, 4 wavy lavender bags.
posh silver bags contain 4 mirrored orange bags, 5 dotted lavender bags.
dim silver bags contain 5 faded purple bags, 5 striped olive bags, 5 striped tan bags.
light beige bags contain 2 bright plum bags, 2 dull salmon bags.
posh yellow bags contain 4 dotted crimson bags, 5 dark salmon bags, 4 pale yellow bags.
dark lime bags contain 3 posh crimson bags, 5 posh purple bags, 1 light black bag.
clear silver bags contain 3 faded olive bags, 3 drab turquoise bags, 4 drab purple bags.
vibrant cyan bags contain 5 vibrant plum bags.

626
aoc2020/input/day08.in Normal file
View File

@ -0,0 +1,626 @@
nop +346
acc +44
acc +15
jmp +473
acc +29
acc -13
jmp +525
acc +22
acc +13
nop +265
jmp +397
jmp +39
acc +39
nop -1
acc +36
acc +25
jmp +153
nop +374
jmp +27
jmp +282
jmp +1
jmp +1
jmp +15
acc +33
acc -3
jmp +533
acc +25
acc -14
acc -16
jmp +245
nop +567
acc +7
jmp +147
acc +26
acc +40
acc -9
jmp +295
acc +14
nop +388
acc -1
jmp -21
nop +524
nop +166
nop +515
jmp +18
jmp +214
acc +42
nop -35
acc +7
jmp +492
acc +14
acc +48
jmp +326
acc +48
acc -18
acc -5
jmp +343
jmp +81
acc +18
acc +16
acc +21
jmp +355
acc +48
nop +358
acc +49
acc -2
jmp +89
acc +4
jmp +171
acc +6
jmp +299
acc -8
jmp +150
acc +41
acc -9
acc +48
jmp +73
jmp +523
nop +471
jmp +493
acc -16
nop +440
acc +2
acc +33
jmp +117
acc +3
acc +34
jmp +310
acc +8
jmp +197
acc +26
acc +47
jmp +194
nop +115
jmp +259
nop +456
jmp +420
nop +398
jmp +235
acc +44
acc +47
jmp +218
jmp +1
jmp +275
acc +12
jmp +434
acc +50
acc +10
nop +361
jmp +367
acc -16
acc +44
jmp +96
acc +9
acc +38
acc -15
nop -31
jmp -55
nop +421
acc +50
acc +12
jmp -64
acc +33
acc +25
jmp +382
acc +7
jmp -22
jmp +95
acc +44
acc +32
acc +23
jmp +1
jmp +456
acc +49
jmp +15
jmp +312
acc +6
jmp +216
acc +7
jmp +458
jmp +465
nop +372
acc +35
acc +32
acc +13
jmp -35
acc +50
nop +32
jmp +143
jmp +327
acc +0
nop -82
nop -62
acc +41
jmp -81
acc -10
nop -106
jmp +82
acc +1
acc +11
jmp +124
acc +25
acc +17
jmp -73
nop +8
acc +29
acc +33
acc +10
jmp +123
jmp +236
acc +41
jmp +370
acc +17
acc -13
acc +35
jmp -47
nop +287
acc +22
jmp +38
jmp +1
nop -52
nop -9
acc +22
jmp +253
acc +12
acc -18
acc +21
nop -69
jmp +28
acc +16
jmp +392
jmp +325
jmp -74
acc +34
acc +47
acc +41
jmp +201
nop +361
acc +50
jmp +30
jmp -127
nop -171
jmp +349
acc +11
nop +156
acc +1
acc -18
jmp +393
acc -8
jmp +1
acc -17
nop +188
jmp +134
acc -9
acc -14
jmp +206
jmp -209
jmp +1
acc +49
nop +112
acc -4
jmp -20
acc +41
jmp -145
acc +8
jmp +276
acc +48
jmp -5
jmp -143
acc +0
jmp -161
jmp +238
acc +8
jmp -134
acc +34
acc +10
jmp +1
nop +109
jmp -100
acc +41
acc -4
jmp -12
acc +42
acc +46
acc -7
acc +28
jmp +85
jmp +216
jmp +364
acc +0
acc -6
nop +331
acc +33
jmp +163
acc +37
acc +20
acc +33
acc +45
jmp -159
acc +34
acc +10
acc +48
acc +10
jmp +358
acc -9
jmp +276
acc +27
acc +45
nop +129
acc +32
jmp +243
acc +0
acc -5
jmp -24
acc +44
nop +307
acc -18
acc +13
jmp +37
acc +5
nop -125
nop -126
acc -18
jmp +186
jmp -87
jmp -262
nop -20
jmp -108
acc +26
acc +20
jmp +193
nop +185
jmp +129
acc +26
jmp +122
acc -8
nop +143
nop +166
jmp -236
acc +33
jmp -139
acc +38
jmp +1
acc +21
acc +31
jmp -79
acc -13
jmp -78
acc +29
jmp +160
acc +48
acc -8
acc +28
acc +15
jmp -284
jmp +25
acc +24
jmp +1
jmp -92
acc +22
jmp +169
acc -15
acc +16
acc +4
jmp -85
acc -18
acc -19
acc -2
jmp -278
acc +48
jmp -195
jmp -40
jmp -110
acc +47
jmp -26
acc +26
nop -187
acc +40
acc +42
jmp +167
acc +50
acc +36
acc -14
jmp -313
nop -203
jmp +227
acc -15
acc +22
jmp -23
acc +6
acc +30
acc +12
jmp +69
nop -212
nop -105
acc +12
jmp -155
nop +69
acc -16
jmp -68
acc -18
acc +35
acc +34
acc +6
jmp -80
acc +7
acc +19
acc -8
jmp -94
acc +12
nop -148
acc +33
nop -41
jmp -107
acc +25
acc +9
nop +107
jmp -44
jmp +1
jmp -254
acc +10
acc +0
acc +37
acc +33
jmp +137
nop +136
jmp -225
acc -4
acc -17
acc +39
jmp -286
jmp +150
nop -380
acc +34
acc +16
nop +146
jmp +105
jmp +119
jmp -190
acc +0
nop +205
nop -302
jmp -17
acc -4
jmp -7
jmp -14
jmp -394
acc +34
acc -1
acc +37
acc -17
jmp -312
nop -180
nop -139
acc +21
jmp -378
acc +24
acc +38
jmp +129
acc +26
jmp +19
acc +31
jmp -190
acc +29
acc -5
jmp +14
nop +186
acc +12
acc +9
acc -16
jmp +9
acc +2
nop -382
nop -284
nop -377
jmp -169
jmp +129
acc +49
jmp -297
acc +48
acc +18
acc +8
jmp +170
acc +12
acc -4
acc +28
jmp -20
acc -11
jmp -363
jmp +1
acc +9
acc +31
jmp +31
acc +36
acc +42
acc +2
nop -131
jmp -322
acc +35
acc +44
acc +11
acc +14
jmp -213
acc -16
acc -15
acc -5
jmp -277
acc -17
jmp -252
acc -19
acc +31
acc -16
acc -5
jmp +48
jmp +1
jmp -97
acc +5
jmp -382
acc +26
acc +41
acc +31
acc -2
jmp -392
acc +41
jmp -124
acc +45
acc +24
acc +10
jmp -339
acc +29
acc -10
acc -10
acc +3
jmp -456
jmp -25
acc +37
acc +39
acc -11
acc -1
jmp +106
jmp -328
jmp -489
nop -111
nop -458
acc +31
jmp -100
acc -18
jmp -258
acc -17
nop -46
acc +43
acc +45
jmp -127
jmp +34
acc +33
jmp -200
nop -90
acc +20
jmp -271
acc +41
jmp -189
acc -16
nop -321
acc +25
acc -12
jmp -62
acc -1
jmp +1
acc +35
acc +39
jmp -184
jmp -236
nop -331
acc +12
jmp +78
acc +15
jmp -30
acc -11
jmp -117
jmp -8
jmp +9
acc +2
jmp -497
acc +10
acc +0
acc -6
jmp -155
jmp -148
jmp -95
jmp -96
jmp -249
nop -277
nop -411
acc -13
acc -2
jmp -383
acc -13
jmp -110
acc +13
acc +16
acc +5
acc -2
jmp -67
acc +37
jmp -491
acc +35
acc +34
acc +32
acc -2
jmp -546
acc -19
jmp -322
acc +48
acc +18
acc +35
acc +8
jmp -448
acc +41
acc -15
acc +34
acc +46
jmp -50
acc +12
nop -184
acc +14
acc +38
jmp -370
jmp +10
acc -14
acc -16
nop -259
nop -300
jmp -400
acc +38
acc +29
acc +27
jmp -175
jmp -456
acc +30
jmp -308
jmp -538
jmp +1
acc -16
nop -127
jmp -407
acc +5
jmp -57
acc +21
acc +3
acc +42
acc +43
jmp -521
acc -9
acc +20
nop -217
jmp -15
acc +37
acc -12
acc -18
jmp +1
jmp -465
acc +37
nop -577
acc +8
acc +43
jmp +1

1000
aoc2020/input/day09.in Normal file

File diff suppressed because it is too large Load Diff

95
aoc2020/input/day10.in Normal file
View File

@ -0,0 +1,95 @@
99
3
1
11
48
113
131
43
82
19
4
153
105
52
56
109
27
119
147
31
34
13
129
17
61
10
29
24
12
104
152
103
80
116
79
73
21
133
44
18
74
112
136
30
146
100
39
130
91
124
70
115
81
28
151
2
122
87
143
62
7
126
95
75
20
123
63
125
53
45
141
14
67
69
60
114
57
142
150
42
78
132
66
88
140
139
106
38
85
37
51
94
98
86
68

91
aoc2020/input/day11.in Normal file
View File

@ -0,0 +1,91 @@
LLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLL.L.LLLLLL.LLLLLL.LLL.LLLLLLLL.LLLLL.L.LLLLLLLLLLLLLLLL.LLLLLLL
LLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLL.LLLLLLLLLLLLL.L.LLLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLL.LLLLL.LLL..LLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLL.L.LLLLLLLLLLLLLLLL.LLLLL.L
LLLLL.LLLLLLLLL.LLLLLLL.LLLL.L.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLL
L.LLLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LL.LLLL.LLLLLLLLL.LLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LL.LLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL
LLLLLLLLLLLLLLLLLLL.LLL.LLLLLL.L.LLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LL.LLLL
LLLLL.LLLLLLLLL.LLLLLLLLLLL.LL.LLLLL.LLLLLL.LL.LLLLLLLL..LLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL
LL.LL.LLL.LLLLLLLLLLLLL.LLLL.L.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLL.L.LLLLLLL
......L....L...L...L.....L........LLL..LL..LL..L.L..LL.L..L.....LL......L.LLL.L..L....LLL.......LL
LLLLL.LLLLLLLL.LLLLLLLL.LLLLL..LLLLL.LLL.LLLL..LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLL.LLLLLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LL..L.L
LLLLL.LLLLLLL...LLLLLLLLLLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLL
LLLLL.LLLLLLLL..LLLLLLL.LLLLL.LL.LLL.LLLLLLLLL.LLL.LLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLL.LL.LLLLLLLLLLLL..LLLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLL.LL.LLLLLL.LLLLLL.LLLLLLL
LLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LL.LLLL
L.LL..LLLLLLLLL.LLLLLLL.L.LLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL..LLLLLLLLL.LLLLLLLLLLLLLL
.L.......L..LL.....L.L.....L..............L.L.L.LL..LL.L.L..LLL.L..LL.............LLL.L......L.LL.
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.L.LLLL.LLLLLLL
LLLLL.LLL.LLLLL.LLLLLLL.LLLLLL..LLLLLLLLLLLLLLLLLLLL.LLL.L.LLLLLLLLLLLLLL.LLLLLLLLLL.LLLLL..L.LLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLL..LLLLLL.LLLLLLLLL.LLLLLLL.LL.LL.
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLL.L.LL.LLLLL..L..LLL.L.LLLLLLL..LLLLLLLL..LLLLL.LLLLLLL
LLLLL.LLL.LLLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLL.LLL.LLLLL.LL.LL.LLLL.LLLLLL.LL.LLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLL..LLLLLLLLLLLLL.L.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LL.LLLL
LLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.L.LLL.LLLLLL.LL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLL.LLL.LLLLLLLLLL
......L.....L...LL.L.L..L...L....L...LLL...LLLLL..L.....L.....L..L......L...L.L.......L..L.LL...L.
LL.LLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LL.LLLL.LLLLLLLLL.LL.LLLLLLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLL..LLLLLLLLL..LLLLLLLL.LLLL.LLL..LLLLLLLLLLLLLLLL.LLLL.L.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL..LLLLLL.LLLLLL.LLLLLL.LL.LLLLLLL
LLLLL..LL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLL.LLLL..LLLLLLL
.LLL...LL.....L.L..L.LL..LL......LL.L.L........L.L.....LLLL.L.L.......L......LL.....LLLL....L.L.LL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LL.LLLL.LLLLLLLLLLLLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLL
LLLL..LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.L..LLLLLLL..LLLL.L.LLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLLLLLL.LL.LLLLLLL.LLLL.L.LLLLLLLLLLLL.LL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLL..LLLLL.LLLLLLL
LLLLLLLLLLL.LLL.LLLLLLLL.LLLLL.LLLLL.LLLLLLLLLLLLLLLLLLL.LLLL.LLL.LLLLLLLLLLLLLLL.L.LLLLLLLLLLLLLL
.L.L...L...L.....L...LLLLLLL.LL....LL..LLL...L...L.LLL..L.L...L.L.L....L.LL.LLL..L....L..LL..L...L
LLLLLLLLLLL.LL..LLLL..L.LLLLLL.LLLLLLLLLLLL.LL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL....LLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LL.LLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLL.LLLLLLLL.LLLL..LLL.LLLLLLLLLLLLLLL.LLLLLL.L.LLLL.LL.LLLL.LLLLLLLLLL..LLLLLLL
LLLLL..LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLL
LLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.
LLLLL.LLLLLLLLLLLLL.LLL.LLLLLL..LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLL..LLLL.LLLL.LLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL
LLLLLLLLLLLLLLL.LLLLLLL.LLLLLL.LLL.L.LLLLLLLLL..LLLLL.LL..LLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL
L..L.L.LLL.LL.......LL.LL..LL.L...L..LLL........L.LL....LL...LL.L.....LL......L.L.L...L.L.L..L..L.
LLLLL.LLLLLLLLL.LLLLLLL.LLLLL.LLLLLL.LLLL.LLLL.LLLLLLLLLLLLLLLLL..LLLL.LL.LLLLLLLLL.LLLLLL.LLLLLLL
LL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLL.LLLLLL.L.LLLLL
LLLLL.LLLLLLL.L.L.L.LLL..LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLL.LLLLLLLLLLLLLL.LLLLL
LL....LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL
L.LLL.LLLLLLLLL.LL.LL.L.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL..LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLLLLLLLLL.LLLLLLLLLLLLLL..LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL..LLLLLLLLLLLLLL.LLLL.LLLLLLLL..LLLLLLLLLLLLLLL..LLLLLL..L.LLLL
LLLLL.LLL.LL.LL.L.LLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL
..LL....L.LL...L.......L.L...L.L..LLL....L...L.L..L...L......L...LLL.L.L...L..L.LL...L..L..L.L...L
LLLLL.LLLLLL....LLLLLLL.LLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLL..LLLLLL.LLLLLLL
LLLLL..LLLLLLL.LLLLLLLLLLLLLLL.LLLLLL.LL.LLLLLLLLLL.LLLL..LLLLLLLLLLLLL.L.LLLLLLLLLLLLLLLL.LLLL.LL
LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLL.L.LLLLLLL
LLLLL.LLLLLLLLL.L.LLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLL..LLLLL.LLLLLLL
LLLL..LLLLLLLLLLLLLLLLL.LLLLLL.LLLLL.LLL.LLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLL.L
LLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLL.LLL.LLLLLLLLLLLLL.LLLLLLLLLLLL.L
LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLL..LLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLLLLLLLLLLLLLLLLL.LL.LLL.LLLLL.LLLLLLLLL.LLLL.LLLL.LLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LL
LLLLL.LLLLLLLLL.LLLLLLL..LLLLL.LLLLLLLL.LLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLL.L.LLLL.LLLL.LL
.L.....L.LL.......L.L..L.L...LLL.L.LL..LLL..L.L....L........L..L.L...L....L...L.LL..L.....L..LL..L
LLLLL.LLLLLLLLL.LLLLLLL.LLLL.LLL.LLLLLLLLLLLLL.LLLLLLLLL.LL.LLLLL.LLLLLLL.LLLLLL.LLLLLLLLL.LLLLLLL
LLLLLLLLLLLLLLL.LL.LLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLL
LLLLL.LLLL..LLL.LLLLLLL.LL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLL.LLLLLL..LL.LLL
LLLLL.LLLLLLLLLLLLLLLLLLLLLL.L.LLLLLL.L.LLLLLLLLLLL.LLLL.LL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLL..LLLLLLL
LLLLL.L.LLLLLL..LLLLL.L.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL..LLLLLLLL.LLLLLL..LLLLLLLLLLLLLLLLLLLLLLLL
LL.LL.LLLLLLLL.LLLLLLL.LLL.LLL...LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LL.L.LLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LL.LLLLLL.LL.LLLL
LLLLL.LLLLLLLLL.LLLLLLL.LLLLL..LLLLL.LLL.LLLLLLLLL.LLLLL.LLLLLL.L.LLLLLLL.LLLLLL.LL.LLLLL.LLLLLLLL
LLLLL.LLL.LLLLL.LLLLLLLLLL.LLL.LLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
........LL..LLL.....L.L...LLL...L.........L.L...L..L...LL.L.....L....L....L.....L....L....L.LLL...
LLLLL.LLLLL..LLLLLLLLLLLLL.LLL.LLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLL.LLLLL.LLLLLLLLLLL.LLL.LL.LLLLLLL
LLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLL.LLLL.LL.LL
LL.LL.LLLLLLLL.LLLLL.LLLLLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLL
LLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLL.LLLL.LLLLLL.LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLLL.L
LLLLL..LLLLLLLL.LLLLLLL.LLLLLLLLL.LL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLLLLLLLLL.LLLLLL..LLLLLL.LLLLL.LLLLLLLL.LL.LLLLLLL.LLLLL.LL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL
L.LL.....LL......LL.L.LL...LL..........LL.LLL...L..L..LL....L......L.....LL.....LL.L..L.LL.L.L....
LLLLL.LLLLLLLLLL.LLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLL.LL.L.LLLLL.LLLLLLLLLL.LLLLLLLLLLLLLL.L.LLLLLLL
LLLLLLL.LLLLLLL.LLLLLLL.LLLLLL.LL.LLLLLLLLLLLL.LLLLLLLLL.L.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
LLLLLLLLLLLLLLL.LL.LLLL.LLLLLL.LL.LL.LLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL
LLLLL.LLLLLLLLL.LLLLLL..LLL.LL.LLLLL.LLLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.L.
LLLLL.LLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LL
LLLLL.LLLLLLLLL..LLLLLL.LLLLLL.LLLL.LLLLLL.LLL.LLLLL.LLL.LLLLLLL..LLLLLLLLLLLLL.LLLLLLLLLL.LLLLLLL

771
aoc2020/input/day12.in Normal file
View File

@ -0,0 +1,771 @@
N2
S5
E2
F35
N2
W5
F83
S5
R180
S3
L270
N1
F35
N1
W4
S3
L180
F46
R180
S4
F29
R90
S3
E1
F65
E4
F29
S4
E5
F33
L90
F28
L270
E3
S5
E2
S5
F82
R270
F81
S3
F68
R180
W5
S3
F70
W4
L180
E2
L90
F28
L270
S4
R90
W2
F39
R90
N5
W5
L180
E3
F66
S5
W3
N5
L90
S2
W4
F77
E1
L90
E3
W1
S3
E4
N4
W5
S1
F55
S3
L90
F20
W2
N2
F23
W2
F48
L90
N1
E3
R90
N4
F73
S4
F7
S1
R90
R90
W3
S3
F71
E5
N1
W1
L90
W3
R180
F60
W2
S5
L90
W2
F6
L180
W4
S2
F28
N4
F56
N4
E4
L90
F67
L90
N1
L90
W3
F43
S2
W4
S1
F67
F72
E2
L90
W2
L180
F35
L90
N2
W1
S5
F58
R180
F68
E2
S5
F61
W4
L180
W2
S2
F35
W4
F50
E3
L90
E3
N5
F16
E2
N4
F87
W4
R180
F25
N3
F6
L90
F57
R180
E2
R90
E1
F99
W1
L90
W4
F76
W2
F48
S1
F19
N1
F54
L90
F66
E4
F88
R90
S5
L180
W2
R90
S2
F54
L90
S2
L180
S4
F14
N2
F51
E3
F83
N2
W1
F61
S1
W3
N2
F15
R180
S3
E3
R90
F50
R90
E5
L90
F53
S3
L90
S5
F22
R90
S5
E3
L90
E4
F88
W1
F10
S2
W4
F68
W3
W2
S3
R90
F1
S1
L270
F51
S2
R90
E3
F6
S1
R90
W2
L180
N1
W5
F51
W1
N1
R90
E1
S3
F21
W3
R180
N1
R180
N1
W4
F21
R180
W3
S5
E3
S5
L180
F3
N4
L90
W5
F23
S3
N5
E1
F88
L90
E4
F18
E3
F27
F51
E3
F58
N5
R180
F36
N4
E2
F14
N4
L180
F87
L180
E3
F67
E4
L90
E2
F62
E3
F60
R90
W2
S1
F47
S5
L90
W2
F11
N2
F29
S2
W1
S1
W1
N2
F73
N3
F92
S2
F1
R180
W4
R90
S5
W4
F33
E2
N2
F40
S1
L180
S2
L90
F95
E2
W2
R180
F26
E1
S3
S1
R90
N4
W4
S5
L90
N1
E5
F9
W5
N1
F89
R180
E5
L90
N2
F90
W4
F33
W2
F62
E1
N4
W4
S5
L90
L90
F81
E3
N5
F81
S1
E3
F89
N3
R90
N3
W3
L90
N2
F93
L90
F48
N5
R180
F66
E5
S1
F47
R180
F61
L90
N2
F74
N1
L180
E2
S5
F39
R180
N5
F26
E5
F12
R90
R90
S4
F7
W5
L90
W1
R90
W2
N2
E2
N1
F15
L90
W4
S2
R90
E3
R180
F86
N5
S5
E2
R90
W1
F64
S2
W3
R180
S4
L180
F58
L90
F100
S2
E4
S2
F52
W2
N4
W4
R90
N2
F45
E5
F84
N3
W2
R90
F36
R90
F85
N5
L90
F6
L90
S4
F21
R90
E5
F9
S4
F53
L90
R90
E1
F55
R90
F56
L90
E4
L90
N1
E1
L90
N1
R90
F51
W1
F39
S5
F96
R90
S1
R180
F72
E1
N4
N3
F77
E3
L90
W4
S3
F53
F92
W5
L90
E4
N2
R180
R90
S3
E2
S3
W1
N1
F86
E3
F46
W1
L90
F97
W3
F45
W4
F73
W2
S2
R90
N2
L180
N4
L90
W1
N2
L90
E1
F93
F36
E2
F74
E3
F49
W5
L180
S3
F5
L180
F53
S2
E3
N1
F96
L90
F44
S3
F32
W1
S2
L90
N2
E3
F17
R90
F34
L90
N4
F22
W2
F58
S2
R90
S2
R90
F12
S5
W5
N5
R90
N3
F12
S4
E1
F86
W3
F6
R90
S5
L90
E4
L180
N2
E4
F50
S5
F85
R90
F13
S1
F69
S2
F97
S1
F66
S4
F86
N5
F34
S2
W5
R180
F42
W4
F72
E3
R270
S3
R90
E2
N4
E5
R90
E2
L180
S2
F35
E4
S2
F50
S1
R90
W3
F100
N3
F10
W4
L90
F19
E2
F10
R90
F27
S4
W3
R90
F53
R90
N3
L90
N5
F46
R90
F3
N1
S4
F17
L270
E2
S2
R90
N4
W4
L180
E3
R90
F86
N5
W1
S4
R90
E4
N4
E5
S4
W1
L90
L180
S1
F42
S2
E2
S5
E1
R90
W1
N4
R90
N3
F58
E3
S1
N5
F65
N5
E4
R180
N5
R90
F90
N3
F1
R180
S2
W3
R90
W1
W2
R180
S1
F93
S2
F35
W2
F62
L90
F15
W3
F79
E5
N4
R180
R90
L90
E2
N2
E5
L270
N3
F31
W3
F39
E5
N3
R90
N2
E3
L90
F50
L90
W5
S3
F68
S3
W3
F20
W3
S2
F7
W1
N1
R90
E2
L180
W4
L90
W4
N5
E5
F19
F11
E2
L90
S3
F30
N2
E5
F51

2
aoc2020/input/day13.in Normal file
View File

@ -0,0 +1,2 @@
1000417
23,x,x,x,x,x,x,x,x,x,x,x,x,41,x,x,x,37,x,x,x,x,x,479,x,x,x,x,x,x,x,x,x,x,x,x,13,x,x,x,17,x,x,x,x,x,x,x,x,x,x,x,29,x,373,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,19

572
aoc2020/input/day14.in Normal file
View File

@ -0,0 +1,572 @@
mask = 110X1XX01011X100XX001X00100100X11X10
mem[36932] = 186083
mem[61779] = 1736
mem[8438] = 233922
mem[14437] = 52044
mask = 111010XX11110X001110010XXXX10X110010
mem[13582] = 24353
mem[1496] = 392102652
mem[57760] = 2161095
mask = X0001000100X000011100X010X0111101000
mem[49377] = 586
mem[8683] = 99128666
mem[47545] = 4950728
mem[8239] = 572
mask = 11011000X001XX10011X010100101X000011
mem[23227] = 2075
mem[41667] = 3496239
mem[52335] = 121816
mem[2133] = 34430091
mem[55128] = 763
mem[47081] = 39750
mask = 110110001XX100001X1011X101X1XXX11X10
mem[60205] = 3232901
mem[51924] = 43044705
mem[63374] = 230379
mem[11894] = 7734
mem[63246] = 16423000
mask = 101010X0100X010X1X000X101X00010X0X11
mem[8503] = 56804621
mem[32796] = 3878072
mem[26373] = 4144912
mem[41862] = 1844653
mem[1531] = 66918501
mask = 11X0X1X0100X0100011X01101010X0000X11
mem[41659] = 4816
mem[24709] = 53807
mask = 001000111X0X1X00X1001111X11011110000
mem[18131] = 128140
mem[42506] = 429
mem[53378] = 23065
mem[63769] = 252084818
mem[3725] = 44133
mem[46028] = 13813159
mask = 1X00110010010XXX01000X0000XX110110X1
mem[53668] = 846
mem[21666] = 14667
mem[23476] = 186639
mem[62612] = 1172276
mask = 1100X100X00111001X1X00X11X11110X10XX
mem[41482] = 18063891
mem[5657] = 103024158
mem[3298] = 724
mem[46789] = 464395
mem[18273] = 3352
mem[33309] = 688
mask = 1000X11X100X01110101100000011110010X
mem[47304] = 802365
mem[10904] = 3705
mem[33114] = 618814
mask = X1001XX01X010XXX011000000000111111X1
mem[37676] = 245458
mem[22874] = 7180
mem[16914] = 154274639
mem[63374] = 7784
mask = 11001010110X010X0X100XX1X1XX1X110001
mem[3077] = 8336589
mem[5652] = 1562
mask = 110110X011010000111101000XX10100X100
mem[19834] = 317
mem[6176] = 87380
mem[64726] = 37717814
mem[49301] = 70
mem[47317] = 14681
mask = 1100101011X10100011X0X0001111000X101
mem[23476] = 604355262
mem[3580] = 6278
mem[32558] = 940
mem[33864] = 6665
mem[15727] = 262
mask = 11X011X1100100X1X11001000X00010X1000
mem[53095] = 185146
mem[38864] = 12467
mem[35836] = 2045
mem[60517] = 2746
mem[58386] = 15698154
mem[55173] = 565070
mask = 11001111100X0X11010XXXX1010001XX0000
mem[64242] = 364237
mem[49911] = 10567
mem[20360] = 185654224
mem[21727] = 343006335
mem[54720] = 3913883
mask = X100X100100X11X0X01100111X1010011X1X
mem[64525] = 4767
mem[41308] = 51743
mem[9602] = 2900
mask = 110011001001010X0110X0X000XX000XX11X
mem[286] = 866
mem[62607] = 238
mem[58896] = 59242164
mem[19086] = 36911
mem[7495] = 450
mem[24399] = 1292593
mask = 11X01000X101110X0110111XX0X000XX1X01
mem[56888] = 877330
mem[52840] = 1947
mem[1981] = 8651446
mem[60446] = 63080
mem[2600] = 6232
mask = 11001X0010110100XX000XX1010X01110X10
mem[27761] = 21648930
mem[59774] = 22460
mem[40904] = 41043
mem[1173] = 5993
mem[19875] = 43997237
mem[23207] = 1083
mask = X100111010010111X11010010X0111010X0X
mem[61225] = 6251
mem[2511] = 349066
mem[249] = 11188409
mem[52422] = 13834290
mem[15713] = 2879
mem[4985] = 17402666
mask = X100101011010XX001100001011X00X0X101
mem[1301] = 343362852
mem[17583] = 3775301
mem[4971] = 1254633
mem[11483] = 633
mask = 1X00XXX01X010X00X1X0X100010101101000
mem[3903] = 306934509
mem[27311] = 12349
mem[27190] = 6701
mem[20969] = 66028553
mem[35976] = 769
mem[48267] = 3497981
mask = X1X010X0110XX11001X00101000XX100X011
mem[41123] = 103318662
mem[181] = 1041346039
mask = 11001010X1110X0011X1010X1XX1X0110110
mem[26158] = 47888
mem[15912] = 39203
mem[36776] = 11782504
mem[64097] = 91605569
mem[4985] = 1672185
mask = 00X0X01X1001X1X00X000110011X0X011X00
mem[26815] = 13764
mem[37676] = 678
mem[38771] = 3638473
mem[54006] = 2042
mem[12422] = 3608213
mem[53062] = 36155
mem[45240] = 49301272
mask = 11001X100101001001XX111X0X00101X0111
mem[29963] = 1006609
mem[29787] = 2605026
mem[28598] = 97494382
mem[18696] = 245409705
mask = 110X11X0X001X10X0X00101X00X111001X00
mem[25685] = 4145
mem[32970] = 209651437
mem[5392] = 189043
mem[50721] = 7070
mem[43460] = 11141940
mask = 11001X1X0000X01X01X11X010000XX1X1100
mem[49934] = 172907
mem[46565] = 2714186
mem[21897] = 8916480
mem[36469] = 16291
mem[29606] = 642611405
mask = 11001XXX1XX101000100X0101X00X1111110
mem[37676] = 20724
mem[41816] = 2818
mem[54358] = 3075103
mem[13946] = 3340
mem[49441] = 899361
mask = 11XX110011010X0X010X110X110001011010
mem[3377] = 7281047
mem[1316] = 50201
mem[45452] = 797
mask = X1001000100101000100010X1X01011X0001
mem[50868] = 15716088
mem[25207] = 25162267
mem[37676] = 43613321
mem[16980] = 558
mem[19477] = 57690392
mem[12572] = 1093
mem[62150] = 110124057
mask = 1X001XXX0101X010X11000XX000010110111
mem[26321] = 185295738
mem[51031] = 3363160
mem[19525] = 4846828
mem[27249] = 3841
mem[14237] = 15665
mem[10626] = 1346519
mask = 1X0001X011X1010000001X1001100100010X
mem[37232] = 20515
mem[40438] = 442615901
mem[7873] = 82872122
mem[36652] = 1759240
mask = 110X10X011X10000111X1XX00X110XX00110
mem[36660] = 7305
mem[6906] = 15329
mem[60660] = 28516301
mem[36921] = 363
mask = 110XX0000111011XX11XX110101000100110
mem[6257] = 837357
mem[6603] = 1058906
mask = 11111X01110X010X111X0X1001011000X100
mem[55173] = 4
mem[1453] = 517
mem[60234] = 390325188
mem[57992] = 141650
mem[19639] = 105818875
mask = 110010X01101X1000110011X10000110X011
mem[33367] = 27415147
mem[60184] = 416
mem[21826] = 18052656
mem[61815] = 106754
mem[13631] = 649
mem[65363] = 814253
mask = 11001110XX0X001X0101111X0X01101X1100
mem[47291] = 29282514
mem[64478] = 171
mem[24297] = 44372003
mem[58293] = 240740
mem[8273] = 144142236
mask = 1XX0110010XX0110011X0011001X111100X1
mem[2960] = 85212050
mem[61111] = 4258
mem[1739] = 723
mem[12562] = 437
mem[24185] = 177841
mem[15975] = 838372
mem[4208] = 15033987
mask = 110X1010X10101000X10001010X0110X11XX
mem[60260] = 95891
mem[40609] = 1269298
mem[948] = 9542659
mask = X10110X011X1000011111XXX101110010110
mem[27777] = 8835
mem[47859] = 45687
mem[56005] = 100776
mem[1232] = 13665111
mem[13946] = 10641351
mem[6529] = 386910359
mem[41734] = 348208927
mask = 11001X001001010X0100100X10X1XX1X1X00
mem[17233] = 263473514
mem[19744] = 306
mem[25207] = 93034
mem[2960] = 195903
mem[31124] = 13675
mask = 0X0010101101000000000X01011X100XX10X
mem[22100] = 370253
mem[39417] = 3381746
mem[52636] = 13261328
mask = X1001000100101X0010001X0X00000010100
mem[47612] = 919
mem[21] = 9261092
mask = 001X0010XX010XX001001100X110001000X0
mem[4442] = 16427302
mem[44311] = 102341705
mem[22101] = 1734
mem[29370] = 1031604
mem[57402] = 10494842
mem[57032] = 12986019
mem[45707] = 115239698
mask = 10000100110101000X00000X1101X01000X0
mem[49006] = 5801584
mem[32012] = 1604
mem[41801] = 4886
mem[61505] = 4439
mem[28905] = 859
mask = 1X00100X1001010101X0000X100011X00100
mem[15713] = 50881
mem[417] = 51341497
mem[33212] = 1578
mem[16747] = 2987656
mask = 0000X1001001010001001X000101XX11000X
mem[35180] = 4721708
mem[46928] = 1489167
mem[14497] = 8780556
mem[48770] = 77758264
mem[55942] = 1013
mask = 11X010X011X1010011100X10000100101110
mem[9963] = 7840988
mem[14206] = 1674499
mem[8747] = 4497632
mask = 10001100100111000X001110X00X00X1100X
mem[61461] = 13872
mem[31211] = 10477
mem[54534] = 39560
mask = 11XX1010011101001111011X01XX001011X0
mem[52868] = 31500
mem[4379] = 81797941
mem[32562] = 536221260
mem[62433] = 956917990
mem[36786] = 639
mask = 1101X0101X01010001X00X00111XX0100X00
mem[20360] = 2333045
mem[2500] = 17349
mem[59652] = 15907
mem[19875] = 3300
mem[39670] = 2297
mask = X1X0X0X0110111000X10110010010X100111
mem[64815] = 349
mem[46789] = 122517
mem[6806] = 17825505
mem[40065] = 6428
mem[57466] = 781
mask = 100X0XX0110X000011100101X00111X01000
mem[19744] = 192212
mem[3482] = 1000232090
mem[18782] = 12404885
mem[22616] = 441070266
mem[1033] = 64017
mem[34731] = 7306819
mask = 0000X010110100000X00X1X0XX01000X01X0
mem[36660] = 7745
mem[55479] = 84017036
mem[55950] = 21798921
mask = XX00X10010X1X100010XX11100000XX01101
mem[54808] = 629
mem[45539] = 19869
mem[9061] = 1977
mem[12600] = 6290142
mem[25375] = 46711576
mem[63784] = 118
mask = 11001X011XX1100000000X00X1X1X1101XX0
mem[35731] = 805
mem[49938] = 77564556
mem[44743] = 7746316
mem[27846] = 23321
mem[19340] = 44321528
mask = 1X000000010101X001100X10X1001XX010X1
mem[25442] = 1488726
mem[29370] = 45
mem[46649] = 1391515
mem[9866] = 44386142
mem[29787] = 98
mem[50143] = 24749139
mem[181] = 202059675
mask = 110X10X011010X00X11000X000110XXX1101
mem[1496] = 305801
mem[770] = 369064
mem[45851] = 4343
mem[5448] = 1097461
mem[9963] = 180825768
mem[50868] = 163453750
mask = 11001X0X10X10X01X1000000001011110101
mem[50868] = 3374
mem[6473] = 798
mem[22004] = 249479722
mem[49424] = 1921
mem[64961] = 22554
mask = 1100X000X1X10X10X11001X1X0XX11000011
mem[27190] = 68433281
mem[11117] = 207719318
mem[22075] = 1736710
mem[27362] = 22298823
mask = 110X111X10010X01010X0X1100X0X110X10X
mem[61557] = 512111512
mem[54534] = 181458
mem[3073] = 309
mask = 11X01X101101XX0X11X11X001001X1010110
mem[33224] = 194647
mem[41364] = 235090
mem[14218] = 71585
mem[53072] = 106479
mem[7724] = 295827351
mem[58487] = 184145
mask = 1100X00X000X11X00X101010001X1100000X
mem[59652] = 159802
mem[36932] = 194
mem[23361] = 151
mem[19086] = 203482
mem[62168] = 317717015
mask = 11111110110101000110110X0X1110XX010X
mem[49301] = 926
mem[40507] = 288276
mem[23918] = 22043
mem[38048] = 16337156
mem[27867] = 7181091
mem[59678] = 2638930
mask = 11111X00X10101X001101000001100XX0010
mem[9866] = 80962613
mem[18183] = 64750530
mem[53362] = 20732591
mask = 110011X01X010X00010000X10001110X010X
mem[3027] = 13383
mem[31709] = 78893
mem[41455] = 17608
mem[37692] = 243289155
mem[48472] = 8046
mem[27460] = 153016
mask = 1100111X1001011101101001X00X10X11000
mem[38043] = 49873
mem[44213] = 7696
mem[33224] = 8523393
mem[51640] = 10737320
mem[6906] = 52608
mask = 11001X0X1X01X1000X0011X010X10010110X
mem[51949] = 4214585
mem[26206] = 2508
mem[3088] = 54253
mem[3520] = 70404
mem[60550] = 443628
mask = 11X010011X110100010000X110010X0X1100
mem[20016] = 1275
mem[34062] = 23784
mem[35450] = 2238
mask = 1100110000X101X1X00010100XX1X1X01001
mem[10909] = 714323212
mem[2960] = 112462692
mem[25997] = 575001651
mem[56484] = 7388438
mem[9947] = 221245
mem[2804] = 614039
mem[58169] = 1243261
mask = X0X000101X010X00010X0110111X0XX11X10
mem[52840] = 31882893
mem[63394] = 6807212
mem[25119] = 99704453
mask = 11001X001X01X1X001X00XXX001X00011011
mem[12572] = 174467910
mem[2025] = 4850
mem[59760] = 245
mem[28910] = 671552249
mask = X10X0100100X1100XX00000100010010X101
mem[61777] = 1007586
mem[11562] = 144972
mem[44667] = 4716564
mem[27836] = 8764
mem[53095] = 460
mem[26949] = 70553257
mem[58590] = 685017
mask = 1010X01010010100X10XX110X10101010010
mem[33367] = 590189933
mem[286] = 2677
mem[11032] = 3330060
mem[21955] = 26464851
mem[56380] = 13293
mask = X1001100101101000100X01000X1X1111110
mem[43587] = 274634523
mem[31842] = 60119
mem[34333] = 310
mem[40438] = 32212190
mem[10454] = 19009927
mask = 1100X100100101X0X11X000000X1000000X1
mem[33160] = 8760481
mem[36653] = 10242381
mem[4860] = 2473420
mask = 1100111X10010XX101X01X0100X000X1X000
mem[13207] = 105364201
mem[12373] = 2695
mem[52017] = 190882168
mem[53408] = 21587
mem[31899] = 135
mem[1496] = 17035561
mask = 11X11XXX11010100X11001000101X00XX1X0
mem[2035] = 17933998
mem[59090] = 16065
mem[34333] = 796
mem[58896] = 2053154
mem[20144] = 4326058
mask = 110010X01101X1X00X1000X00011X0111100
mem[9733] = 1522718
mem[11096] = 2342
mem[55942] = 4702870
mem[7873] = 2036
mem[8239] = 623332
mem[52769] = 11624
mask = 110010001001010001X0101X00X10000010X
mem[14437] = 24774
mem[28014] = 797
mem[22241] = 53780909
mem[38304] = 15186661
mem[11404] = 97161
mem[63784] = 249399690
mask = 11X11000100100X0101000X010X1000X0010
mem[56380] = 19721
mem[22062] = 75530415
mem[31425] = 287110
mem[43460] = 89614
mem[25070] = 1512
mask = 111011011X01X001X1XX0X0X00111100X000
mem[49424] = 373272
mem[28043] = 3670039
mem[58071] = 359664858
mem[22241] = 17599111
mem[29943] = 39014
mem[28417] = 3450355
mask = X100110X100X1100XX10X001001101X110X1
mem[14603] = 751
mem[11483] = 35107
mem[55108] = 21708
mem[1712] = 727
mask = 110X100011010X00000XX1XX10111110110X
mem[26015] = 730
mem[31217] = 7070
mem[60234] = 1338576
mem[31923] = 27422
mem[4924] = 127749
mem[58541] = 431336
mem[27436] = 174
mask = 110X1000X00XX1100X100X01000X00000XX1
mem[62150] = 533
mem[25119] = 1221
mem[45105] = 403478588
mask = 1X00111010010XX1010X0XX0000111001XXX
mem[38360] = 54334
mem[17005] = 1610718
mem[45060] = 62600538
mem[49270] = 443925
mask = 1X0001001011X100010100X00X01000011X0
mem[21371] = 3535233
mem[36135] = 190919297
mem[11369] = 31464899
mask = 110X110010X10001XX100X010X0110101110
mem[58188] = 3989
mem[23361] = 40018
mem[5232] = 49172
mem[27564] = 219808
mem[22871] = 3401
mem[30199] = 32487
mask = 1101X01110110001X10101110101X1110X10
mem[56570] = 6165971
mem[22050] = 33953170
mem[62558] = 7948
mask = 101000101101XX000101110111XXXX001010
mem[20071] = 437692
mem[11992] = 1300348
mem[61128] = 41192
mem[22101] = 23853023
mem[29606] = 69397
mask = 1100111010011X0000X000100X00110011X0
mem[19034] = 2165447
mem[2039] = 1432579
mem[10454] = 19950777
mem[52868] = 1616
mem[41920] = 514748449
mask = 1XX01100100101X001001X11X001000X00X0
mem[4860] = 105284991
mem[13088] = 17564144
mem[34062] = 7580431
mem[18476] = 44
mem[63629] = 15398
mem[14975] = 417929
mask = 1101X10011010100011010000011000XX00X
mem[50246] = 1418894
mem[17805] = 6218
mask = 110X1X111XX10001X1010011010X011X11X0
mem[9656] = 4094124
mem[46818] = 113006
mem[21175] = 15186
mem[49270] = 1030
mask = 1100100110011X0000000XX0XX01XX10010X
mem[51805] = 9343
mem[27533] = 258399
mem[51048] = 34882784
mask = 110010X0100101000110X0X100010XX11010
mem[2212] = 10472068
mem[11369] = 8019
mem[527] = 367177
mem[41039] = 804169
mask = XX0011X0X0010X0X01001X00010011011100
mem[58330] = 32302320
mem[15713] = 80795155
mem[22933] = 910923
mem[51640] = 254698
mem[35556] = 226072
mem[32355] = 1445

1
aoc2020/input/day15.in Normal file
View File

@ -0,0 +1 @@
0,14,6,20,1,4

265
aoc2020/input/day16.in Normal file
View File

@ -0,0 +1,265 @@
departure location: 28-184 or 203-952
departure station: 43-261 or 283-958
departure platform: 43-549 or 564-970
departure track: 30-724 or 732-970
departure date: 37-650 or 657-973
departure time: 28-911 or 922-965
arrival location: 41-855 or 863-970
arrival station: 26-304 or 324-970
arrival platform: 45-896 or 903-963
arrival track: 34-458 or 466-962
class: 43-337 or 363-954
duration: 33-239 or 260-973
price: 34-600 or 606-961
route: 25-686 or 711-973
row: 36-101 or 124-963
seat: 25-794 or 806-949
train: 38-139 or 164-952
type: 37-619 or 627-956
wagon: 35-62 or 75-963
zone: 40-479 or 490-960
your ticket:
89,137,223,97,61,167,181,53,179,139,211,127,229,227,173,101,83,131,59,79
nearby tickets:
170,218,811,107,747,184,411,426,594,629,764,509,287,385,734,853,646,474,937,773
683,727,850,596,125,222,334,774,778,567,427,90,478,385,174,497,184,745,646,88
405,582,670,456,607,504,924,850,674,219,500,22,134,479,92,832,220,750,780,449
646,572,467,337,515,380,736,130,850,686,649,96,742,579,61,88,381,725,814,226
55,534,61,866,895,169,260,170,216,230,566,208,763,759,805,366,636,421,762,885
931,892,738,294,56,887,619,718,609,450,164,223,502,286,740,230,570,784,23,821
179,475,428,87,766,749,618,382,77,595,910,498,847,328,338,871,432,210,333,285
681,337,949,101,227,817,273,814,425,884,570,637,905,330,171,97,929,519,512,83
756,22,90,543,420,783,53,125,490,831,877,331,636,508,518,443,334,674,610,619
896,366,581,402,392,679,138,327,384,382,865,627,394,515,266,170,209,825,659,724
130,208,542,778,631,168,331,94,500,848,435,839,65,215,567,385,126,600,891,753
418,474,395,829,649,382,907,172,583,584,493,490,691,393,887,807,577,586,234,617
547,430,743,598,421,947,183,736,432,836,396,549,9,534,100,635,579,608,641,431
444,594,458,235,931,84,184,832,511,662,483,881,667,91,839,397,674,719,942,413
479,125,645,132,380,479,718,734,788,638,779,566,253,599,753,834,774,593,566,567
378,781,522,853,582,851,858,889,674,845,363,286,287,610,518,415,672,219,415,809
759,805,904,661,522,905,261,166,721,492,672,454,565,827,761,586,947,629,833,634
443,526,792,137,752,627,579,408,835,286,99,532,878,243,844,607,771,669,423,382
504,597,425,827,50,737,220,418,62,364,402,72,671,549,444,518,641,390,222,504
435,633,547,677,841,304,749,398,597,725,924,926,527,658,532,490,590,676,598,869
299,416,454,477,510,377,899,479,444,836,665,374,432,206,872,213,753,436,99,372
364,752,507,397,388,628,790,134,205,394,136,716,895,272,175,81,724,332,939,130
929,388,908,687,767,469,784,135,794,570,679,304,178,89,935,941,640,639,544,390
98,759,820,932,853,946,930,454,379,831,856,867,427,283,467,440,457,666,166,627
417,762,751,928,419,773,834,721,721,630,83,596,929,386,211,930,171,506,604,433
903,947,475,872,168,325,215,236,96,233,840,839,675,331,878,947,483,571,475,870
516,203,126,849,331,415,411,1,566,713,207,906,575,637,780,520,864,830,59,892
793,364,586,414,660,261,847,738,526,381,893,105,879,591,532,529,644,840,396,819
579,719,181,522,549,669,302,472,837,448,987,591,637,99,945,372,518,129,399,787
610,606,501,330,418,865,290,468,782,670,577,718,296,803,748,515,864,53,841,299
125,833,456,509,253,836,872,722,746,58,896,414,470,813,720,597,675,97,504,630
680,794,875,96,450,873,409,568,98,89,810,374,882,646,417,50,109,832,839,627
205,788,527,61,618,300,210,932,814,877,678,991,659,934,613,91,826,509,414,327
537,634,923,773,232,181,329,378,219,587,183,55,592,556,391,450,779,628,443,433
506,303,294,671,650,633,781,418,534,379,845,490,845,224,442,929,649,602,882,84
825,58,60,586,418,67,415,439,96,223,234,631,399,894,949,865,512,887,203,389
822,817,746,96,226,675,133,855,929,381,772,628,895,648,424,235,78,219,872,74
890,611,826,894,831,332,752,303,5,184,855,766,641,405,374,547,288,295,817,77
612,388,292,533,171,506,260,609,813,385,678,629,825,929,233,600,780,82,931,120
408,102,589,298,385,852,333,333,169,885,287,492,567,82,131,737,932,213,537,670
334,384,947,128,538,893,867,87,790,522,891,844,944,649,620,775,499,734,745,684
493,924,184,943,746,849,435,448,83,678,94,636,430,120,619,548,774,380,62,518
934,302,297,721,209,98,81,664,96,442,173,511,939,203,725,82,545,940,937,751
543,642,924,675,443,458,385,297,330,940,373,483,790,218,834,767,941,878,449,429
941,391,391,669,98,139,733,685,408,808,15,416,572,209,877,723,547,841,807,504
135,778,764,845,587,598,590,173,815,458,284,923,873,835,881,936,394,902,647,394
164,826,395,752,526,102,182,221,436,514,469,684,208,790,834,94,841,416,494,302
53,865,445,565,56,765,214,637,763,172,507,598,291,975,811,506,466,512,80,297
591,266,165,426,92,333,753,573,635,929,128,820,386,657,411,374,582,208,906,932
373,753,81,303,212,544,777,976,225,878,381,546,180,657,548,414,423,373,734,210
404,922,929,91,535,523,763,758,816,366,606,926,125,864,901,230,739,470,334,396
884,599,719,614,830,224,576,379,815,216,576,412,872,616,661,390,451,654,540,547
505,851,755,410,379,791,64,668,377,336,420,165,675,177,479,225,852,666,638,877
889,546,564,811,423,502,775,589,386,468,896,295,480,337,824,210,169,447,929,392
774,723,732,545,78,7,840,891,165,927,881,375,374,609,239,818,178,387,815,137
406,505,787,476,723,233,446,393,94,89,927,672,531,261,123,492,664,473,389,77
209,330,833,636,533,901,100,635,97,508,535,448,173,98,609,205,428,61,762,549
661,611,58,373,167,579,83,547,896,936,376,497,537,450,141,532,939,179,76,209
840,433,62,811,334,734,493,753,468,296,764,512,176,571,397,229,494,751,894,252
430,426,567,224,63,538,908,504,326,837,925,522,51,843,227,936,821,678,428,214
534,719,51,395,670,477,603,284,594,127,128,131,829,824,927,75,51,948,395,830
427,929,993,865,372,936,532,521,371,825,283,896,417,418,182,440,511,519,723,739
426,578,994,327,414,284,94,83,370,52,852,135,239,830,499,569,300,497,870,437
659,896,297,444,712,100,421,295,770,519,907,415,567,415,652,228,507,793,925,592
478,99,769,905,534,165,545,167,663,832,396,554,62,454,615,783,682,476,478,373
789,830,545,719,410,754,630,786,509,887,930,173,335,741,775,375,547,250,437,884
433,887,770,172,594,330,215,835,945,603,636,784,84,744,422,172,512,438,284,806
619,992,538,591,398,748,495,512,425,373,133,168,583,597,204,736,592,815,57,748
735,936,324,589,432,573,98,374,597,578,717,514,212,328,907,686,410,976,893,447
129,579,847,216,391,334,177,619,779,918,501,782,78,835,855,578,927,472,811,493
426,423,387,233,379,512,592,377,750,865,589,916,822,762,540,124,420,635,844,775
904,170,826,933,297,764,233,330,788,829,112,607,547,777,451,807,384,852,126,298
511,836,406,779,836,532,8,629,425,840,543,766,929,836,261,372,936,894,686,56
440,575,517,827,173,497,835,498,752,212,752,393,59,831,875,877,902,818,600,414
893,558,503,379,83,648,62,903,903,786,630,129,231,454,647,233,177,773,823,442
949,447,806,275,617,766,909,519,607,302,183,236,58,855,809,629,597,293,526,54
84,89,134,658,662,668,77,926,454,634,496,296,334,232,598,493,8,418,509,783
756,713,214,817,790,808,600,395,768,882,228,942,767,387,79,299,790,336,754,603
788,566,739,325,774,674,564,540,373,62,667,905,100,872,415,575,53,297,859,521
171,613,400,898,942,216,207,774,260,783,575,905,522,889,851,947,437,458,713,549
762,926,902,671,589,174,96,615,409,615,475,733,376,295,511,129,658,475,761,443
203,794,501,514,98,860,79,222,510,792,711,168,646,834,887,208,441,527,289,646
397,807,398,337,532,667,770,77,735,941,639,542,763,647,604,213,337,811,410,867
217,568,779,428,765,754,606,883,787,534,544,759,900,403,497,629,210,591,753,734
130,414,792,410,786,124,833,132,840,653,299,944,137,565,871,236,853,735,514,896
878,683,597,521,51,410,116,806,176,715,385,289,672,936,82,588,95,174,933,375
363,425,409,612,631,830,669,96,615,767,173,386,366,654,742,411,59,736,941,821
520,653,375,83,236,904,720,207,304,762,449,640,527,453,174,549,836,949,545,469
444,500,615,839,814,893,593,944,301,243,94,825,211,233,903,872,299,645,410,224
679,570,627,438,327,994,391,669,751,447,293,126,646,138,178,679,228,636,578,594
549,929,427,373,426,15,668,220,664,776,53,738,941,849,51,52,508,751,406,51
928,670,436,782,722,335,845,611,664,794,982,945,300,223,131,870,184,409,80,575
420,238,823,394,436,439,811,820,520,869,261,588,631,677,294,292,762,619,597,989
824,218,524,766,368,934,815,304,283,266,136,792,412,429,173,750,598,903,746,806
295,785,365,517,422,885,569,825,831,424,591,218,650,682,476,549,788,858,575,834
937,579,529,821,572,888,385,608,548,607,367,195,471,627,544,523,828,679,94,53
437,412,288,372,171,867,506,478,329,786,580,467,610,394,206,453,835,24,616,467
370,864,331,780,86,886,441,571,648,482,372,932,892,415,753,394,444,541,165,100
230,855,612,820,396,131,296,98,649,841,130,778,176,862,453,173,135,548,839,637
794,686,296,285,933,582,679,881,392,515,226,773,763,904,67,439,928,720,610,529
172,932,676,885,937,494,717,826,70,129,931,220,635,176,781,364,583,880,911,785
663,717,515,927,837,505,735,825,902,211,540,640,126,420,217,542,716,896,886,719
868,643,16,472,491,650,933,238,216,613,225,225,865,367,939,433,618,410,477,491
229,635,287,593,261,986,759,57,528,775,887,529,237,942,138,411,739,495,225,810
530,758,510,755,823,17,753,570,865,833,732,90,776,793,773,175,751,389,588,767
474,784,496,719,539,911,566,328,879,928,759,764,819,714,488,532,127,682,512,210
525,98,416,757,888,646,179,564,826,430,610,99,734,165,702,847,423,829,765,442
504,383,172,636,297,826,928,757,419,222,182,591,586,154,442,908,440,771,376,138
982,90,754,495,717,214,56,905,638,531,542,330,876,576,495,329,300,779,712,877
132,761,568,917,235,669,673,175,529,933,753,757,236,612,821,819,749,221,438,234
545,451,454,749,514,522,174,724,135,595,289,531,445,386,661,784,861,506,226,893
334,292,814,939,638,402,878,218,780,72,756,906,864,469,454,401,88,534,823,716
667,447,238,578,86,864,565,947,392,179,684,588,851,772,572,751,879,66,295,822
833,445,855,730,935,237,506,401,888,239,94,811,131,379,739,219,469,606,815,569
403,434,940,633,383,819,237,773,526,910,414,76,630,913,642,524,659,331,791,386
508,864,872,397,499,467,671,617,868,110,816,812,217,681,942,510,733,948,713,598
446,915,58,474,752,512,285,299,894,573,749,287,823,375,808,531,540,714,840,409
137,181,53,496,547,720,714,840,830,829,77,579,167,734,814,447,3,659,432,757
10,221,846,753,131,787,454,78,714,410,327,455,375,785,234,51,872,328,370,617
850,890,258,385,754,585,780,528,548,379,678,818,438,896,879,648,893,946,941,671
539,260,372,127,845,603,711,212,609,366,437,582,239,470,426,540,713,743,785,644
577,527,523,210,300,289,591,937,204,775,875,293,822,602,713,741,386,566,669,334
743,421,593,573,296,659,847,388,512,493,779,514,501,76,472,606,678,110,505,768
898,815,937,384,433,669,513,649,75,260,425,127,679,428,59,658,742,566,383,634
417,366,872,377,545,811,197,788,430,843,173,57,743,164,337,580,469,642,841,451
493,790,650,181,293,536,836,574,631,882,843,431,417,432,849,751,225,456,910,862
392,600,740,847,497,816,658,887,647,910,67,641,774,846,568,893,848,617,381,377
295,587,837,168,670,783,766,81,823,452,777,51,622,218,732,78,53,428,786,50
469,433,929,13,468,134,522,546,181,375,509,213,76,771,773,683,139,937,548,863
852,534,507,547,608,884,564,388,779,811,644,755,653,410,433,101,938,417,174,815
531,166,750,940,593,595,492,991,52,824,415,227,138,949,867,375,922,328,640,101
379,334,444,854,923,575,714,412,678,206,203,426,174,977,409,786,838,514,335,368
52,445,750,778,852,389,787,514,904,659,85,756,727,925,543,203,128,329,495,429
812,923,884,417,840,611,717,748,949,636,423,838,556,534,665,892,431,681,528,523
450,218,424,418,493,169,134,288,93,189,880,868,430,389,716,864,678,545,882,521
789,223,436,540,210,248,55,565,394,59,835,363,509,617,775,535,410,792,684,395
329,429,750,138,423,435,210,450,387,770,134,736,638,784,452,863,500,582,829,982
390,82,295,598,519,333,754,290,56,702,217,642,420,506,208,172,846,586,824,375
418,611,291,496,933,817,730,590,237,501,171,644,588,82,807,172,580,380,499,384
880,419,139,329,467,283,829,774,442,137,513,466,176,924,818,978,785,741,184,214
415,537,511,377,135,100,254,879,425,827,591,629,787,90,495,411,169,523,619,573
378,880,747,744,396,482,446,476,719,497,223,948,940,447,492,168,476,734,834,586
388,86,83,475,409,926,821,874,872,386,566,685,498,526,832,791,81,129,781,12
169,473,739,751,592,681,577,544,512,895,86,296,646,454,56,501,325,807,74,51
939,879,882,572,287,387,585,882,427,564,335,205,505,617,460,411,816,515,931,570
248,229,410,632,828,508,332,441,867,99,470,632,442,825,640,442,665,544,762,647
609,564,494,834,853,590,772,532,634,295,808,564,772,71,388,446,632,540,614,793
225,509,665,234,897,506,777,229,164,768,291,300,545,868,231,733,94,334,521,887
406,577,87,538,841,494,436,368,642,866,713,134,671,763,246,607,909,780,499,372
217,439,904,205,528,879,827,685,722,569,880,443,643,580,882,334,496,265,787,298
98,485,510,893,84,181,567,893,852,849,530,939,84,682,447,638,934,368,716,133
886,821,210,585,51,178,134,431,213,56,371,859,237,777,526,337,420,628,526,506
231,428,610,567,297,678,547,842,569,811,914,167,364,675,831,403,767,329,910,869
455,408,519,715,337,0,84,756,328,466,794,370,868,766,177,437,922,752,326,260
414,687,466,672,834,664,171,391,682,509,611,948,466,600,234,513,863,769,468,941
428,716,677,760,611,430,775,818,374,176,611,601,538,885,547,776,665,666,363,752
751,77,637,133,683,431,378,632,457,62,681,544,62,772,859,578,590,417,863,569
217,777,134,125,781,169,478,869,924,139,97,898,647,576,392,236,775,443,523,717
807,774,324,62,948,789,746,939,855,168,645,927,939,449,916,441,584,681,932,720
210,203,478,220,365,932,333,579,367,424,853,278,591,785,886,218,888,533,99,334
640,431,220,807,207,683,932,407,203,405,365,875,863,221,555,61,778,592,780,129
852,203,616,89,639,24,501,790,772,617,220,754,810,757,791,438,775,777,715,296
449,931,372,750,835,95,206,768,923,907,514,77,601,79,889,433,579,750,217,449
886,534,548,844,59,198,53,425,205,134,896,867,670,420,58,830,177,639,829,610
666,911,752,578,835,443,783,135,889,411,736,289,280,220,825,456,832,944,331,923
806,536,674,788,498,366,633,682,583,134,101,829,196,630,589,433,421,761,669,229
930,832,478,415,659,821,662,66,659,820,220,633,935,674,535,80,682,293,381,387
663,298,457,332,128,763,332,84,564,611,604,909,770,204,924,216,745,841,416,288
781,663,514,858,773,466,719,298,172,825,755,866,453,125,852,826,134,429,648,774
528,294,866,794,332,379,184,296,843,596,832,614,532,7,792,664,789,935,600,734
570,222,426,169,873,231,91,679,325,366,614,2,299,876,83,237,53,472,771,468
84,56,872,684,927,336,820,449,447,902,377,233,86,593,759,403,929,842,169,495
382,671,442,589,929,128,214,847,237,800,684,599,164,415,525,684,849,217,227,887
837,745,370,740,855,638,660,89,56,866,224,593,508,511,191,441,134,939,782,887
814,200,401,891,384,763,885,83,126,478,792,420,910,614,175,822,818,225,764,92
716,716,930,388,111,635,842,505,182,467,591,744,88,414,543,444,611,387,512,675
379,887,80,594,844,629,677,722,632,874,238,940,847,942,776,519,193,905,261,930
433,838,779,208,165,443,477,78,764,521,366,397,612,846,606,747,404,431,106,291
386,650,474,331,939,610,489,650,419,416,442,286,93,365,582,367,334,840,642,394
818,302,50,794,820,755,561,661,884,683,631,130,867,723,419,807,848,610,382,889
928,907,467,614,53,271,511,825,578,827,182,814,431,760,541,765,661,299,51,523
377,602,752,169,83,806,527,544,294,325,228,876,866,367,505,531,288,871,368,866
368,854,817,328,923,139,498,547,503,431,897,733,543,288,774,614,84,169,540,525
599,300,226,628,206,294,638,369,906,527,451,453,937,539,222,367,991,942,881,467
513,93,600,794,166,170,416,863,528,511,77,508,115,598,775,217,629,806,512,928
760,857,415,525,762,420,716,738,371,684,290,285,821,810,777,498,810,944,336,648
105,401,503,565,216,787,548,474,382,939,754,827,924,515,755,438,166,770,773,418
871,843,223,588,739,591,328,541,617,678,541,542,916,182,450,776,807,908,424,764
363,396,96,390,892,572,407,780,738,212,298,785,233,164,807,235,76,213,252,777
565,888,366,557,669,418,778,569,380,447,413,166,907,675,878,810,417,618,401,788
368,592,393,810,382,571,741,285,586,632,240,237,779,331,886,378,765,445,869,135
138,522,637,817,684,176,581,926,755,380,765,304,441,898,231,743,836,379,670,131
291,632,821,659,939,514,643,616,124,579,678,619,367,729,518,768,756,386,167,365
818,240,750,237,87,472,769,213,842,260,225,767,629,593,820,775,838,774,764,466
478,769,88,248,716,584,78,751,372,583,85,218,294,446,328,396,83,130,166,668
444,814,476,67,946,629,911,525,589,864,945,478,180,403,835,474,494,218,177,292
527,947,533,500,658,740,737,87,572,97,501,435,911,621,934,466,260,479,413,288
73,304,911,761,412,863,891,590,869,638,662,132,410,397,711,477,92,56,576,736
89,478,284,203,755,889,237,417,886,424,925,659,713,480,774,56,758,224,62,75
871,455,60,675,606,13,516,378,884,506,236,443,763,176,586,789,377,767,547,167
285,673,284,130,223,327,575,633,582,986,390,855,441,494,719,907,763,794,757,610
507,376,837,101,822,670,466,504,838,595,831,885,405,940,657,62,448,197,757,791
788,564,847,786,55,715,288,818,219,468,905,291,789,459,75,792,337,894,515,868
671,429,286,888,436,647,735,756,324,907,260,780,459,509,513,775,180,781,439,300
90,507,533,401,125,80,590,645,872,89,132,878,502,302,746,941,737,556,874,508
597,884,580,849,431,324,418,767,294,532,405,248,785,940,215,841,403,78,374,721
164,748,435,617,869,936,855,607,515,462,784,453,927,83,532,600,207,379,503,814
15,468,58,223,843,878,633,478,741,224,96,751,784,767,736,531,750,216,643,619
472,523,843,481,849,943,90,543,381,572,382,842,566,335,891,911,630,712,420,533
5,923,539,213,810,869,738,757,285,878,535,385,432,667,793,454,775,659,401,944
518,80,925,723,880,425,914,577,470,475,937,448,409,433,678,794,456,85,889,381
602,823,404,176,842,814,528,136,583,716,834,429,908,627,292,744,833,926,855,545
669,209,366,126,716,747,882,540,825,452,617,588,816,228,136,288,126,918,871,452
865,794,237,654,433,630,722,615,541,790,174,609,128,519,682,232,179,644,527,214
401,894,435,543,717,546,238,205,787,555,905,761,407,524,376,757,443,205,373,869
668,906,228,733,719,835,751,776,515,83,782,851,836,788,570,577,605,500,86,927
759,612,391,602,85,506,946,661,385,408,455,335,363,428,658,416,678,129,853,292
853,228,50,399,576,753,422,770,529,862,181,783,391,300,382,784,217,377,366,819
892,842,432,824,181,286,472,467,57,331,884,467,498,298,881,892,770,333,825,484
853,936,792,598,389,886,11,176,661,444,535,599,89,842,377,908,722,216,421,759
182,685,736,206,368,93,877,674,785,837,291,806,324,705,421,877,819,422,490,834
58,516,178,532,89,580,516,214,503,612,199,379,758,167,723,238,59,865,536,405
564,785,445,176,823,540,884,85,946,890,641,54,834,218,542,928,247,499,229,832
925,414,905,199,649,946,816,735,644,753,761,779,328,661,880,849,769,657,547,58
184,583,534,844,366,300,910,767,873,24,325,947,870,183,806,80,659,79,470,457
885,683,826,722,759,514,52,403,850,178,133,520,214,867,608,618,512,446,900,711
660,747,211,443,607,632,95,77,580,826,576,774,804,533,947,747,59,592,885,852
513,435,73,615,179,91,873,383,61,455,82,181,754,721,635,869,86,947,893,52
937,454,927,932,935,212,227,640,135,762,477,849,415,822,681,577,628,872,9,683
374,909,607,775,934,588,373,290,612,457,337,216,545,495,294,134,443,487,742,84
524,900,87,874,742,671,133,547,82,394,847,444,594,368,751,549,637,237,673,867
456,661,828,85,215,912,720,212,477,90,609,642,847,587,835,905,98,454,780,366
873,292,55,833,285,369,405,52,217,650,293,637,926,199,165,662,824,296,223,526
8,429,574,364,80,184,540,590,680,826,438,399,380,503,180,739,388,641,526,182
756,57,236,212,789,808,571,544,81,722,387,617,862,405,396,518,864,169,455,82
93,402,449,610,641,928,2,212,239,420,838,905,790,55,99,946,181,418,748,941
425,68,840,423,217,790,470,288,847,669,791,546,718,781,415,81,395,809,935,573
21,330,375,595,738,948,523,82,713,335,682,501,296,325,289,90,290,574,426,379
410,51,139,410,534,226,520,422,438,498,614,821,495,850,744,396,169,515,440,901
577,171,878,134,600,368,171,169,450,229,761,843,82,575,870,886,64,455,414,564

8
aoc2020/input/day17.in Normal file
View File

@ -0,0 +1,8 @@
...#...#
#######.
....###.
.#..#...
#.#.....
.##.....
#.####..
#....##.

371
aoc2020/input/day18.in Normal file
View File

@ -0,0 +1,371 @@
(5 * (5 * 7 * 6 * 7 + 2) * 5 + 7) + 3 * 2 * 8 + 8
8 * 6 + (5 * (3 + 2 * 8 + 2 + 7 + 4) + (7 + 5 * 6) * 9)
(6 + (2 * 3)) + (3 * (8 * 6) + 4 * 5 + 9) + (7 * 8 * 2 + (2 * 3 * 6 + 2) * 4) * 7 + 8 * 4
5 * (2 * (7 + 9) * 5) + 5 + 6 * 7
7 + (4 * 2 + 5) + 6
9 + (7 * (4 + 7) + 4 * 9) + 3 + 9 * 5
(9 + 8) * 9 + ((9 * 3 * 7 + 9 + 5) * 2 * 7 * 7) + 3 * 5
5 * (8 * (2 + 6) * 5 * 8) + 4
(2 + 9 + 9 + 8 * 6 * 7) + 9 + 7 + 6
((9 + 3 * 7) + 4 + 6 * 6 * 4 + (8 * 7 * 5 + 9)) * 8 + 7 + 4 + (7 + 7) * 3
(2 * 5) * 2 * (4 + 7 + 2) + 7
((8 + 2) * 2 + 5 * (3 + 6 * 6) * 2 * (6 + 9 + 9 * 7)) + 5 + (2 + 8) * (9 + 6 + 5 + (5 * 5 + 7 * 7 + 7) * 9)
5 * (2 + 5 + 8 + 3 + 3) * (6 * 3 * 6 * 2 * 7) + 7
(6 + (9 + 8 * 5 * 8)) * 8 + 7 * 4
(3 + 4 * 8 + 7 * 9 * 2) * 2 + (3 * (4 * 6 * 4 * 9))
(3 * 4) * 7 * (5 + 4 * 9) * ((4 * 7 + 2) + 9 + 7 * 7 + (3 + 5 * 3 + 7) * 5) + 7 * (7 * 7 + 6 + 5 * (4 * 7 * 6 + 4 + 2) * 7)
(2 * (5 * 5 + 2 * 3 * 4 * 5) + (9 * 9 * 9 + 2) + 9 * 8 + 2) + 8
(6 * 3 + (9 * 9 + 2 * 9)) * (3 * 6 + 5 + 7 * 7) + 8 * 3
4 + 3
(7 + (9 * 2 + 7 + 7 * 5) * 4 * 8) + (3 + 4 + (7 + 8 + 6 * 2 + 9 + 3)) + 6 + (5 + 6 + 7 * 6 + 8 + 5) * (8 + (7 + 9 * 6 * 7 + 8) + (4 + 9 * 9 + 2 * 6))
5 + (9 + 4 * (4 + 6) * 4 + 5 * 8) * 2 + 4 + (7 + 2 + 4 * 4 + (8 * 6 + 4 + 4) * 6)
(6 * (7 + 5 * 9 * 5 * 6 * 4)) + (9 + 3 * 5) + 3 + 4 + 8 + 8
2 * (7 * 6 * 7 * 7) * 2 * 5 + 2
5 + 5 * 2 + (8 + (9 + 2 + 2 + 3 + 5 * 4) + 7 * 3 * 4 + (8 + 5 * 6 + 5 * 6 * 3))
9 + 6
(9 * 3 * 7 + 5 + 7 * 4) + 2 * 4 + 5 * 8 * (5 + 6 * (3 + 8 + 4 + 4 * 7) * 9 * 2 + 8)
(9 * 7 + (3 + 4 + 8 + 7 * 7)) + 3 + 9
5 * 4 * 4 + (7 + 7 * (6 * 8 * 7) + 5)
(9 * 5) + (7 + 4) + (4 * (3 + 8 * 4 * 7 * 6) * 8) + (4 + 2 * (6 + 3) + 2) + 8
(2 + 3) * (9 * 9 * 9 + 4 * (6 * 4 + 4 * 3)) * 7 * 8
7 + 3 + 5 + (3 + 3 + 8 + (6 * 3 + 9 + 5) * (5 * 7 * 8 + 5) + (3 + 4 * 8 * 8 * 8 + 3)) * ((3 * 9) + 3)
(6 * (3 * 2) * (8 + 3 + 2 * 3 + 6) + 9 + 7) + (5 * (8 * 7) + 2 * 4) * 6 + ((3 + 4) + 8 * (9 + 6 * 4 + 5)) * 5
3 + ((5 * 3 * 6 * 3 + 2 * 7) * 7) + 2 * 4
(7 * 5) * (3 * 3)
8 + 3 * 3 * (6 + (6 + 9 * 9) + 8 + 7) * 2
5 * (8 + 3) + 5 + (4 + (7 * 7) + 7 + 5) * ((6 + 5 + 3 + 9 + 5) + 8 + 3 + 4) * 9
7 + (4 * 6 * (4 + 8 + 9 * 2 * 3 + 4) * (5 + 9 * 8 * 7 * 9) + (5 * 3 * 9 * 2 * 9) * 2) * 2 * 6
8 * (5 * 5 * (2 * 5 * 2 + 4 * 6) + (7 + 8) + 5 + 8) + 9
5 * 4 * (7 + 4 + 9 + (5 * 2 + 9) + 7 * 3)
9 * (8 + (5 + 6 + 2) * (6 * 7 * 9) + 8 * 5) * (3 * 8) + 7 + 8
6 + 4 + 6 * 4 * 6
((2 + 5 + 8) * (7 + 2 * 8 + 8 + 4 * 3) + 4 * 9) * 5 * ((6 + 2 + 9 + 2 * 9) * 5 * 6 * 3 * 6 + 8) * 6 + 5
5 * 5 * 7 * (6 * 6) * (5 * (8 * 4 * 2 * 9 * 2))
3 + 6 + 9 * 6 * (6 + 5 + 8) + (3 * 5 + 6 * 2 + 6)
((7 + 3 + 9 * 4 + 7 * 7) * 2 * 5 * 9 * 7) * 9 * ((5 * 7 + 8) + 8 * (4 + 4 * 6 * 7 * 6))
(7 + 6 + (8 + 3) + 5 + 8 * 2) * 3
4 * (8 + 4 * 2 + 3 * 7) + (7 + (5 + 3 * 9 * 4) * 5 + 2) + 6
8 * 5 * 3 * 3
8 + 6 + (9 + 6 + 6 + 2 * 8 * 8) + 8 * (5 * 3) + 4
4 * ((3 + 9) + 4 + 3 * (7 * 3 + 3) + 3 + 3) * 9 * (7 + 4) * 4 * 8
(8 + 3 + 8 + 3) + (3 * 8 * 7 + 7 * 3 + 9) + 5 + 6
(9 * 7) + 3 * 4 + 9 * 7 + (9 * 9 * 3 * 7)
3 + 2 + 4 + 4 * 3 * (6 + 2 * 2 * (5 * 5 * 5 * 8 * 9) + 5)
5 + (5 + 3 + (6 * 9 * 9 + 2 + 2 + 4)) + 8 * (9 * 3 * (7 + 2 * 5 * 7 + 8 * 3) * (7 * 8) * (7 * 7 * 5 + 2 + 4)) * 9 + 2
7 + 2 * 3 + 5 + (7 * 6) + 2
7 + 3 * 9 + 8 * 4 + (5 * 5 * 5 + 8 * 5)
7 * 7 * ((9 + 3) * 8 + 5 * 5 + (4 * 5 * 5 + 6 + 4 + 9)) * 2 + 2 + 8
(2 + 3 + (2 + 6) + 7 + 7 * 8) * 9 + (6 + 5)
9 + (5 + 4) * 2
6 * 6 * 6 * (4 + 7) * (8 * 8 + 7 + 5 + 6) * 6
2 * 6 + (2 + 4 * 4 + 3) * 5 + 8
((7 + 8 * 7) * 7 * 6 + (6 * 7 * 9 + 5 * 6 + 7) + (4 * 3 * 2 * 7 * 4 + 5)) + (6 + (6 + 3)) + 8
7 + (7 * 9 * 3 + 6 + 5) + 5 * 2 + 2 + 9
3 + 3 * (5 * 4 * 7 * 8) + (8 * 9 + 2 * 6) + 5 * 7
(2 + (6 + 9 + 6) + (4 * 6 * 7 * 7 * 3) + 8 + (8 + 3 + 9) * 7) * (8 + 3 * 9 + 7 * 8) * 5 * 9 + 3
((2 * 4 + 8 + 6 * 5 + 7) + 7 * 5 + (4 + 5 + 5 * 4) + 2 + 7) * 4 * 7 * 7
5 * ((3 + 5 * 2 * 8 * 3 + 6) + 8) * 2
4 + 2 + 4 + (5 + 2 * 7 + 7 * (9 * 3 + 4) + 4)
7 + (5 + (4 + 8) + (3 * 5 + 6 * 7 * 3 * 4) + 7)
(4 + 7 * 7 * 9 + (6 + 2 * 3 + 3 * 8 * 3)) + 9 + (5 + 4 * 7 + 5 + (5 * 5 + 9 + 3 * 3)) + 6
6 + 5 * 4
((5 * 8 + 9 * 7) * 8 * 5 * 8 + 3 * 5) + 5 + ((7 * 3 * 7 + 4 * 4) + 4 + (6 * 3 * 8 * 5 + 5) * 2 + 7)
7 + 3 * 9 * 3 + 8 * (4 * 3 * 5 + 7)
7 * 3
(4 + 9) * 4 * ((4 * 9 + 7 * 6) * 7 + 6) + 3
(8 * 9 + 8) * 3 + 2
7 + (2 * 8 + 8 * 5 * 2 * 8)
(2 * (7 * 3 + 3 + 2 + 7 + 6) * 6 * 4 + 2 * 5) * 6
6 + 8 * (4 + 5 + 6 * 3) * 6
3 * 8 * 6 * (8 + 6 * 7 + 7) * 2 + 6
4 * 9 + 4 * (7 + 5 + 4 * 8 * (9 * 4)) + (2 + 8 + 3 + 9 + 7 + 6)
(2 + 3 * 9 * (9 + 5 + 2 * 2 * 6 * 2) + 3 * 3) * 6
9 + (6 + 3 + 9 * 3) + (9 + 8 * 8 + 8 * 7 * (8 * 2 * 4 + 2))
2 + (8 + (7 + 2) + 7 + 8 * 8) + 9 + (4 * 3 * 8 + 3 * (5 + 9 + 3)) * ((4 * 5 + 2 * 3 * 4) + 9 * 3) * 3
3 + 6 * (6 + (9 + 3 + 6 + 5 * 9 * 7) + 9 + 4 + 3)
5 + 8 + 5 * (2 + (2 * 3 * 2 + 7 + 2) * 6 + 7)
4 + (8 * 2 + 2 + (8 + 5 * 5 * 4 + 4 + 2) + 7 + (7 + 5 * 5 + 6 + 8 + 4)) * 3 * 4 + (9 * 8 + 3 * 6 + (7 * 7 * 4 + 9 * 2 + 8) + 8) * 6
(4 * 9 * 3 * 3) + (8 * 8 * 3 + 6 * 9) * 8
7 * 6 + (8 * 8 + 9 + 8 * 9 + 7) + ((8 + 5 * 5) + 3 + (6 + 6 * 5 * 8 * 4 + 5) * (9 + 2 + 6 + 9 + 6) + (5 * 2 + 5 * 4 * 9) * 9) + 3
5 * 8 + 4 * 7 + 5 * ((3 + 7 * 3 + 7) + 2 + 7)
5 * ((8 * 9 * 5 + 8 * 4 * 4) * 7 + (3 * 7 * 9) * (8 + 8 + 2 * 4 + 4))
8 + 6 * 9 * (2 + 3) + (4 * (2 * 3 * 8)) * 2
(5 * 2 * 6 + 7) + (7 + 2 * (5 + 3 * 5 * 7 * 8 + 3) + 4 + 3) * 7
9 + 9 + 3 * (9 + 7 * 2) + 6
5 * 4 + 7 * (7 + 8 + 4) + 4 * 9
5 * 7 + 2 + 7 + (4 + 7 * 4 * 6)
((4 + 3 + 2 + 4 * 5 + 8) + (5 + 8) + (3 * 6 + 2 + 7 + 7) * 8) + 2 + 8
4 * 8 + 8 + (5 * 5 + 2 + 4) + (9 + 3 + 9 + 6 * 9) + 7
4 + (4 * 7 * 2 * 7) * 6 * 2
7 * (4 + 2 + 7) * (2 + 4 * (4 * 4 + 8 * 3) * 2 * 7) + (3 + 8) * 4
5 + 2 + 2 * 5 * (3 + (8 + 7 + 5) + 4 * (2 + 3) * 7) * 8
6 + 4 + (2 + 8 * (4 + 6) + 5 * 5) + 6 + (6 + 2 + 2 * 3 + 4) + 7
(7 * 6 * 6) * (9 + (5 * 4 * 3 + 5 + 8)) * 2 * 2 + 6
((5 + 8) + 5) + 8 + 6 * 8
4 * (4 * (6 + 5) + 8 + 5 + (2 + 7 + 2 * 4 * 7))
(8 * 7) + 8
7 + ((2 * 6 * 3) + 8 + (7 * 4) * (7 * 2 + 6 + 9 + 8) * 2) + 7
((7 * 8 * 3 + 8 + 4) + 4 * (5 + 9 * 4 + 3 * 8) + (7 * 8) * (5 * 7 + 9 + 5)) + 2 * 3 + 2 * 6 + 7
9 * ((3 * 2 + 8 + 5) * 9 + 5)
6 * 9 + 3 * 7 + 8
6 * 8 + 9 * 9 * 4 * ((9 * 9 * 2 + 5) + 7)
(8 * 9 + 8 * (4 + 4 + 3 * 6 + 4 * 7)) * 3 + 7 + (5 + (5 + 4 + 6 + 2 + 2) + 5)
7 * 7 * 2
5 * (9 * 4 * 5 * (4 + 2 + 3 * 2 + 3 * 8) * 3) * 3 * 4 * ((9 + 2) + 7 * (5 + 4) * 4 * 4 + 7)
((2 + 3 + 2 * 6) * (8 * 2 + 3 * 2 + 6 * 6) * 9 + 2 + (4 * 2 * 3) * 4) * 4 + 6
4 * 5 * 5 * 2 * 9 + 6
3 * 4 * (3 + (3 * 7 * 2 + 9) * 7 + 3 * 6 * 4) * 5
6 + (6 + 3 + 3 * 5) + 9
9 * 2 * 2 + (5 + 7 * 9) * 8 + (6 + 6)
3 * 3 + 6 * 5
(4 + 7 + 5) + 6 + 2 + 9 * 6 * ((2 * 2 * 7 + 9) * 6)
2 * 4 + 3 + 4 + 8 * (5 * 3)
7 + 6 * 9 * 8 + (5 + 2 + (2 + 7 * 6 * 9 + 4 * 5))
7 * 3 * ((2 * 9 + 5 + 5) + 7 + 5 + (6 * 2 + 5 + 3 * 6))
4 + 9 + (4 + (7 * 7 * 5) + 3)
(8 + 6 + 5 * 9 * 9 + 6) + 6 + 5 + 5 + 4
(3 + 8 + 4 + 2) + 6 * 5 + 4 * (7 * 5 * 6) * 8
7 * (6 + (4 * 5 + 8 * 9 + 3) + 7 * 6 * 8) * 9 + 7
3 + (2 + 9 + 3 + 6 + 2) * 3 * (6 * 5 + (2 * 6 + 5 + 6 * 3) + 4)
(7 + 6 + (2 + 8 + 5 * 5 * 3 * 8) * 3 + (7 * 4 + 5) * 7) * 3 + ((4 + 3) * 2 + (8 * 2 + 3 * 2)) + 8
(9 + 3 * 6 + (7 + 3 * 8 + 7) * (5 * 5 * 6 + 8 * 6 * 8) + 2) + 6 + 9
((7 * 4) + 5 + 6) * (6 * 6 * 2) * (3 + (6 + 5 * 6 * 5 * 6) + 4)
9 * (8 * 2 + 9) * (7 + 7 + (9 * 9 + 3 * 8 * 2 + 7))
(6 + 5 + 9 + (3 + 2 + 9 + 5 * 4 * 7)) * 5 + ((4 + 4 + 7) + 6) + 7 + 3 + (3 + 3 * 5)
(4 * 5 * 3) * 8 * 6 + ((7 + 9 + 5 + 5 + 3) * (9 * 2 * 9 * 4 + 9 + 4) * (3 + 6 + 3 + 7 * 9 + 5)) + ((4 + 6 + 8) * 9 + 3 + 6 + 8)
4 + ((9 + 2 + 3 + 6 * 4 + 9) + 3 + 7) + 5 + 8 + (8 + 5 + 8)
(7 + 2) * 4 * 5
6 * 2 * (8 + 4 + 6 * 3 + (4 * 4 + 8 * 7 * 6 * 2) + 6) * 9 * 8
2 * 2 * (8 * 9 + 4 * 9 + (5 + 4 + 5) + 3) * (8 + 7) + 8
6 + 4 * 9 * 3 * ((8 + 9 * 7) * 5) * ((7 + 7 * 4 + 7) * (9 * 6 * 9 * 4) + (5 * 7) * (8 * 5 + 4) * 6)
3 * (5 * 9 * 7 + (4 * 6 * 6 + 8 + 8 * 8) * 8 * (2 * 8 + 5)) + 7 + 8 * 6 + 9
6 + ((2 + 3 + 7 + 9) * 5 * 2 + 5 * 9) + 8 * 8 * 8
5 + 6 * 5 + 4 + 5 * (4 * (3 + 4 + 3 * 7 * 9 + 5) * (9 + 8 + 2 + 7))
8 * 7 * 4 + 2 * 7 * (9 * 5 + 6 * 8 + 7 + 6)
((3 + 8 * 2 + 5 * 9 * 5) * (7 + 6 * 6 * 7 * 7 + 6)) * 4
(2 + (5 * 5 + 5) * (5 * 3 * 7 + 5) * 4 + 2 * 9) * 3 + 9 * 3 + 4 + 7
4 * 5 * (3 * 4 + 7 + (3 + 9 * 5 + 6 + 3 + 6)) + (3 + 9 + (7 + 6 * 7 + 6) + 4) + 7
5 * ((5 * 4 + 8 + 7) * 7 * 3 + 6 * (8 + 2)) + 3 * (5 * 7)
8 * 2 * (6 + 5 + 5) + (9 * 4 * (7 + 9) * 4 + 6 + 3) + (7 * 6 + (5 * 5 * 5 + 6 + 3 + 5) * 5 + 3) + 4
(6 * 7 * 8 * (2 * 9) + 9 + 2) + 2 * 7 + 5
3 * 3 + 5 + 6
8 * (3 * 3) + 8 * (9 * 6 * (6 + 9 * 4 * 9 + 6))
3 * 3 + (9 + 6) + 2 + 6
8 + 8 + 2 + 2 * 6 * 7
4 * (6 + 7) * (2 * 8 + 6 + 6) * 2 * 2 * 7
5 * 5 * 6 + 3 * (7 * 5 + 6 * 6) * 9
3 + 6 + 9 * (8 * 3 * 6 * 6 * (7 + 2 * 9 * 8 + 2 + 2))
7 * 5 + (7 * 4 + 4 * 3 + (7 + 6))
8 + (8 * 8 * 2) * 6 + 4 * (6 + (2 * 6 + 2 + 8) * 3 * 3)
3 + 7 + (2 + 2 + 3 * (2 * 5 * 7 + 9 + 2) + 7 + 5)
3 + (2 + (5 + 5 + 3 * 2)) + 2
9 + 8 + 7 + 3 + (8 + 5 + 3 + 3 * 6) * 3
4 * 9 + 4 + 7 + 6
9 + 7 * 8 * 2 * 6 + (5 * 2 + 9 + (7 + 7 + 9 + 9))
(3 + (5 * 9) * (8 * 9 * 3 + 4 + 2 + 5)) + 5 * (7 * 4) + 3 + ((9 + 3) * 5 * (7 + 4) + 6)
6 + 8 + 9
((2 + 9 + 9) + 2 * 9 * 9) + 8 + 3 + ((6 + 2 + 4 * 8 + 7 * 2) + 5)
(3 + 9 + 2 * 8 + 5 + 3) * 8
8 + (6 * (2 + 4 * 5 + 6 + 7) * 6 * 7) * 8 + 8 + 9
((8 * 9 + 6 * 3 + 6 * 7) * 6 * 4 + 6) * ((5 + 2 + 9 + 6 + 2 * 5) * (3 + 8 * 7) + 5 * 8) + 8 + 3 * 8
4 + 7 * (6 + 3) + 5
(4 + (2 + 4 * 3 * 4) * (5 + 7 * 2 + 7 * 8)) * 3
(2 + 7 + (7 * 4 + 8 * 3)) * 4 + 4 + 6 + (5 * 4 * 4 + 3)
(2 + 4) + (5 * 8 + 2 + (4 + 4 + 2 * 9 + 5 + 7) * (4 + 6 + 6)) + 3 * 3 + 8 * 8
6 + 7 * 4 * 9 + 3
7 + 9 + ((2 + 2) * 3 + 9) * 8
9 * 2 * 8 * (3 * 7 * 4 + 5 * 4)
5 * 3
4 * 5 + 4 * (7 * 3 * 7 * (8 * 5) * 9) * 5
9 * (4 + 8) * 9 + 3 * (5 + 7)
6 + ((9 * 8) + 3 * 8 + (3 + 4 * 9 + 8 * 6 * 4)) + 6 * 9 * 5 * 3
((6 * 9 * 8 * 6 + 7 * 6) * 8 * 6) * (3 * (8 * 6 + 3 + 7 * 4 * 9) * 4 * 3) + 5
(7 + 3) + 9 * (3 * 9) * (5 * 3 + 2 + 2 + 4) * 6 + 7
(2 + (4 + 4)) * (6 + 7) * 5 * 9 + 3
3 + (4 + 6) + 3 * 8 * (4 * 5 + 6 * 5) + (5 + 2 + 6 + 7 * 5)
((5 * 6 + 9) * 2 * (8 * 5 + 5 * 5 + 7) * 9 * 2 + 6) + 2 * 9 * (2 + 4 * 5 + 6 + 6)
6 * 9 + 9 + 5 * ((3 + 6 * 3 * 9 + 9) * 2 * (7 + 6 + 9 * 8) * (5 * 8) + 9 * 2)
(9 + 3 + 8) + 7 * 5 * (4 + (3 + 4 * 2 + 5 + 9) * 2 + 9 + 8) * 8
(5 * 4 + 4 + 8 + (2 * 2 + 5 + 3 * 7) * 3) * (7 * 5 + 4 + 4 * 5 * 2) + 9 * (3 * (3 + 7 * 3) * 9 * 5 + 7) * 9 + 8
(4 * 9 + 5 + 5 * 4 * (4 + 7 * 3 + 3 * 3 * 6)) * 3 * 9 * 3
5 + 9 + (5 + 8) + (4 * 7 * 3 + 6)
2 + 4 + ((5 + 7) * 3 * 5) * (5 * 7 + (7 * 9 * 9 + 7 + 5) * 4) + 4
(3 + 6 * 4) + 2
(2 + 9) + (9 + 7 + 4 * 4) + 5 + 8
7 * 7 + ((2 + 6 + 5) * 2 + (9 * 9 * 7 * 5) + 7 + 7) * 3
((4 + 5 * 8) + 6 * 6 + 5 + (5 + 6)) * 8 * 2 + 5 * 4 * 7
3 * ((2 * 5 * 7 * 7 + 2) + 7 + (8 + 7 + 2 + 2 * 4) + 6) * 8 * (9 * (9 * 9) + 6 * 6 * 5 + 7) + 4
9 * ((8 * 3 * 6 + 8 + 5) * 8 * 6 + 4 + 8 + 8) + 6 * ((6 * 9 * 4 + 4 * 8) * (2 + 6 * 3 + 6 + 4 * 9))
(4 * (5 + 5 + 4 * 8 + 3)) * 5 * (7 * 3 * 2) * 2
2 * 9 + 8 * ((9 * 4 * 7 + 4 + 6 + 8) + 6 * 3 * 7 * 5 + 2) * 7
3 * (4 + 9 * 8 * (3 + 3 + 3 + 3 + 5) * 4) + 6
9 + 9 * 5 * 9 + ((7 * 8 * 8 * 8) + 5 + 3)
((6 + 4 * 2 * 7) * 3 * (5 * 9 * 5 * 2 * 3 * 6) * 7 * (6 + 8)) * (2 + 3 * 3 * (5 + 4 + 2)) + 8 * 9 * 9
8 + 9 + 5 + 6
(5 + (2 * 9 + 8 * 4 + 5 * 2) + 5) + 3 * 9 * 2 + (9 * 4 * 8)
6 + (8 + 5 * 6 * 5 + (2 * 6))
2 * ((5 + 4 + 6 + 7 + 4 + 2) * 6 * 4) + 2 + 3 + 8 + 6
((3 * 8 + 8 * 5 * 4) * (5 * 9 + 3) * (2 * 6 + 4 + 3) + 3 + (4 * 9 + 9)) * 7 + ((9 + 5 + 5) + 3 + 9 + 5) + 8
5 * 5 * 7 + 2 + 4 + 6
2 * 4 + (2 + 7 * 3 + 9 + 5) + (8 + 8 * 4) * 7
(8 + (2 + 8) * 9 * 8 * 4) + 8 * 8 * 6
8 * (3 + 4 * 4 * (2 + 7 * 2 + 5 * 8)) * 3
((2 * 8 + 3) + 3 * 4 + (3 * 9 + 5 * 6 * 6 + 3) * (5 + 3 * 4 + 6 + 3 * 5) + 3) * 6 + 6 + 8 * 2
4 + 6 + ((9 * 5 + 2 * 8) + 2 * 3) + (2 * 7 * (3 * 2 * 4 * 2) + 6 * (6 + 8 * 8 * 8 + 5 * 9))
3 + 6 + ((5 * 7 * 9 * 2 * 9 * 3) + 3 + (3 * 4 + 3 + 7 * 8) * (3 + 4))
(9 + (4 + 8 * 3 + 7 * 6 * 9)) * 4
5 + (7 * 2 * 4 + 8) * 9 * ((9 + 8 * 8 * 7 + 5) * 6 * (3 + 7 + 8 * 3 + 7))
(4 * 5 * (9 * 8)) * 9 * 8 * (4 + 8 * 9 + 9 + 6) * 6 + 7
(4 * 3 * 8 * 2 * 7) * 4
2 + (5 + 5 + (9 * 4 + 8 + 9 + 8) * 4 + 3) + 9 + 6 * 7 + 5
(7 * 4) * 7 * (5 * 9 + 5 + 6 + 6) * 3 * 9 * 9
7 + (6 + 7 * 2 * 7 * (5 * 7 + 2 + 6 * 6)) * 8
2 * 3 + (3 * 2 * 7 * (7 * 7 + 9 * 7 + 6)) + 3 + 9
((3 * 9 + 6 * 6 + 9) + 2 * 5 + (9 + 8 + 6 * 6 + 6) * 7) * (6 + 2 + 5) + (4 * 5 + 6) * ((6 * 8 + 8 + 3) * 7 * 7 * 6 + 4) * 3 * 6
3 + (9 + 7 + 2 * 7 + 5)
2 * 6 + 2 + (9 * 9) * 9 * 4
((3 + 8 * 3 * 9 + 6) * 5) * 6 * 3 + 6 * 5 + 6
5 + (7 + 8)
6 * 4 + (5 * 5) * ((4 * 3 + 9 + 6 + 3) + 2 * 3 + 4) + 9 * (6 * 7 * 4 + 5)
4 + (6 + (9 * 5 * 7 + 7 + 9) + 7) + 7 + 6 + 3
3 * 4 + (2 + (4 + 8 * 5 * 9 * 7)) + 4 * 6
3 + 7 * 3 * (2 + 9 * 2 + 5) * 5
2 * 2 + (4 + (5 * 5)) * 3
((3 + 6 * 7 + 6) + 6 + 9 + (7 * 7 + 6) + 9 * 6) + (3 * 5) + 8 + 8
9 * (3 + 4 * 8) * 5 + ((8 * 7 * 5 + 2 * 6 + 7) + 4 * 8 * 5 + 5) * 8
((5 * 9) + 6 + 6) + 5
(2 * 3) + (8 * (8 * 3 + 7 * 6 + 3) + (7 * 7 + 6 + 6 * 8 * 7) + (3 + 8 * 4) * 6) * 9
5 * 3 * (5 + 8 * 3 + 8 + 8 + 2) + (7 + 7 * 8)
2 * 4 * ((9 + 8 * 9 * 6) * 4 * (5 + 7 + 5 * 3) * 7 * 2 + (8 * 7 * 3 * 5))
8 + 6 + 9 * (9 + 9 + (7 + 2 + 3 + 3 + 6)) * (3 + (4 + 9 * 2 * 3)) + 4
(4 + 7 + 5 * 8) * 3 * 3 + 6 * 3
(9 * 8 * 6 + 9) * 5 * (3 * (8 + 5 * 9 * 4 + 2 * 2) + 6 * (5 + 7) * 9 + 6) + 6 + 4
7 * 2 * (8 + 5 * 9 * 6 + 9 + (6 + 8)) * 6 + 3
2 * 4 * (3 * 8 + 9)
7 + ((3 * 4 * 3 + 6 + 2) * 7 * (4 * 4 + 2)) * 7 * 4 + 3 + 3
6 * (5 * 8 * 2 * 4 * 3 * 4) + 4 * 2 + 9 + (7 + 8 * 2 * 3 + (5 * 7 + 6 + 5) + (5 + 8))
(3 * 4 * 7 + 5 + 7) + 6 + ((4 * 7 * 8 * 9 + 4) + 4 * 8) * 6 * 7
9 * (7 + 5 * 5 * 9) + (4 + (2 * 9 * 8) + 2 * 5)
6 * 7 * 4 + (4 + 9 * (4 + 2 + 4 * 6) * 5) * 3 + ((3 * 3 * 6 * 5 * 9) + 4 * 2)
9 * (5 * 3 * 8 + 8 * 4 * 5) + 2 + (2 * 8 + (6 * 3 + 7 + 9) + 5 + 3) * 8
3 * 4 * 4 + 9 * 4 + (9 + 5 + 8 * (5 + 3 + 5) * (8 * 6 * 2) + 2)
5 * 5 + 2 * 2
5 + 3 * (7 * (2 + 2 + 6 * 3 * 5 + 5) + 9 * 3 * (6 * 3 + 6 * 4)) + 3
(2 + (2 * 6 + 7 * 6) + (6 + 4 + 7 * 9 * 4 * 8) + 3) + 9 + 5 + 3 * 2
7 + ((2 + 2 + 8 + 3 * 6) + 2)
3 * 9 + (5 + 7 + 3 + 9 + 6) * 8
2 * ((7 * 9 * 3) * 7 * 6) * 8 * 3
9 * 7 + 7 + 6 + 3 * ((9 + 3 + 6 + 3 * 4 * 2) + 4 * (3 * 2) * (6 + 6 * 2 * 4 * 8 + 7) + 2 * 6)
((8 + 9 + 8 + 3 * 4) * 9 * (3 * 6 + 5) * 6 + (2 * 3 * 4 + 9)) + 5 + 2 + (4 + (7 * 8 + 4 + 4 * 7 + 8)) * 5 + 4
4 + 3 + 6 + 9 + (7 * 9 * 6 * (5 + 8 * 3 + 3) * 4 + 3)
2 * (9 + 9) * 9 * 9
5 * ((2 + 7 + 7 + 5 + 9) * 4) + 7
(6 + 6 * 9 + 3) + (4 + 9 * 2 + 9 * 2 * 9) + 7
(6 * 6) * 7 + 9 * 2 * 2 * (4 + (8 + 7 + 9 + 7 + 4 * 2) + 6 * 4 + 8 * 5)
((9 * 7 * 9) + 6 + 4) * (6 * (3 + 5) + 6 * 5) + 6 + 3 * 2
6 * 6 + (8 + 3 * 6 + 2 + 8 + 8)
6 * 8 + ((9 + 3 + 7 * 2) + 8) + 3 + 7
4 + (7 + (3 + 5) + 6) * (8 * 3 + 5 + 9 * 8)
7 * (7 * 6 + (3 + 7 * 9 * 7 * 8) * 4 + 5 * 3) + 4 * 2 + 6 + (8 + 6 + 8 * (4 * 3))
9 * 9 * 6 * ((6 + 9 + 7) * 5 + 9 + (9 + 4 * 7)) * 6
(3 + 9) + ((9 + 3 + 9 + 9) * 6 + (2 * 6 + 8 * 2 + 2)) + 3 * 3 * 9 + 3
(2 * (9 * 9 + 9) * 9 + 9) * 2 + 2
5 * 2 * 9 + (9 * 8 * 2 * (6 * 7 * 8 * 5)) + (5 + 8 * (9 * 6 + 7 * 7 * 7) * 3) * 2
6 * 2 + ((4 + 6 * 3 + 9 + 9) + 9 + 2 * 7 * 8)
(2 * 8 * 5 * 2 + 5) * 8 + 7 * 5 * ((5 + 8 * 9 * 4 * 2) * (9 + 9 + 5 + 7) + (8 + 6 + 3 * 8 + 7) * 3)
4 + 6 * (7 + (6 * 5) * (5 * 2 * 9 + 4) + 2) * 9
4 + 8 * (6 * 3 * 7 + (8 * 9 + 9 * 2)) * 5
(2 + 9) * (8 * 4 * 5) * 9
(4 + 6 + 5 * 7 + (5 * 4 + 2 * 2 + 9 + 2)) + 4 + 8 * 3 + 3
7 + (5 * 5 * (2 * 2 * 8) * 7 * 8) * 4 * 6 + ((5 + 3 * 7 + 4 * 7 * 8) + 2 * 6 * 9 + 8)
5 + 3 * 7 + (6 + 4 * 9 + 3)
3 * (2 + 6 + (3 * 7 * 2 + 9 * 9 * 8) + 9 * 4) + 6 * (4 * (5 + 2 + 2 * 3) * 5 + 9) + 5
7 * 6 + 2 * ((2 * 9 * 6 + 3 + 2) * 3 + (2 + 7 + 4) * 8)
2 + (3 + 9) * 7 + 6 * 7
2 * 5 * 9 * (2 + (5 * 8 * 4 * 4 + 8 + 7) + 3 * (5 + 4 * 8 + 5 * 9 + 7))
((4 + 5 + 7 + 4 * 3) + (9 + 7 + 5 + 7 + 5) + 8 * 9 + 7) * 6 + 4 * (6 + 3 + (6 + 7)) * 8
9 + 3 + (8 + 4 * (8 + 3) * 8 * 8) * (8 * 2 * 9) * 5
(8 * (3 + 2 * 7 + 2 + 6) + 9 + 2 * 9) + 3 * 5
6 + 6 * 2 * 8 * 5 + 4
(6 + (7 + 2 * 6 + 3) + (3 + 7 * 5 * 6 + 4 + 9) * 5 * 3) * 4 * (6 + 3 * 2 + 4 * (9 + 6))
2 * ((7 * 6 * 3 + 9 + 9 + 9) * 2 + 9 * 8)
9 * (3 * 6 + (9 * 9 + 7 * 9) + 8) + 8 + 6 + 4
4 + 4 * (4 * 8 + 4 * 2 * 2 + 3) * 3 + 6 + 9
9 * 9 * 2 + 4 * (2 * 7 * 5 * 2 + 3)
7 * 4 * 6 * (3 + 2) * 4
(6 + 3 + 8 * 6 + 8) + ((6 * 5 * 8 * 8) + 2 + 8 + 2 * 6) + 5 + (2 * (6 + 5 + 9 * 9 + 3) + 2 * 7) * 6 + ((2 * 8 * 2 * 9) + 9)
5 + 3 * ((2 * 7 + 9 * 2) * 3) * 6 * 6 + 8
(6 + 3 + (2 + 7 + 4) + 4) * 4 * 4 * (9 * 2 * 7 * (9 + 3 + 8 + 5) * 3) + 8
8 + ((9 * 4 * 4 * 3 + 9) * 3 + (9 + 6) * 3) * (9 + 9) + 6
(9 + (3 + 7 + 9 * 2 * 8) + 3 * 5 * 7 * 2) * 6 + 8 * 7 + (5 + 7 + 4 * 5 * 4)
8 * 2 + ((5 + 9) + 2 + 8 + (8 * 2) * 3 + 8) * 9 + (2 + 8 * (8 + 4 + 7 * 9) * 4 + 7 + 6)
((8 * 8 + 7 * 7 + 3) * 8 * (4 + 8 * 4 + 4 + 4 + 4)) + 9 * 2 + 8
5 * (6 * 3 + 4 * 2 + 7 * 5) * (3 * 7 * 8 * 3 + 3 + 6) + 6 + 4 + ((4 * 6 + 3 * 8 + 4 + 5) + (3 * 5 + 8) + 6)
6 + (9 * (5 * 2 + 9 + 6 * 2 + 2) + (4 + 3 + 6 + 5) * 2 + 5)
4 + ((3 + 2 * 6 * 3) * 5 + 8 * (5 * 7 * 4 + 7 * 6 + 6) + 3 + 7) + 9 + 8 * 5
7 * (5 * 5 + 5 * (7 + 6 + 6 + 5 + 2 + 6) + 6) + 7 * 8
9 * ((2 + 9) * 5 * 7 * 4) + 9 + 7 * 5
(8 + 9 + (7 * 7 * 5 + 6) * 4 + (5 * 5 * 4) + 5) * 6 + 8 * 6 * 9 * 9
4 * ((5 * 4) + 7) + 2
2 + (3 * 5 + 7)
3 + 8 * 5 + 2 * (8 + 4 + 8 * 2 + (8 * 4 * 9 * 3 + 6) * 4) * 5
8 + 2 * 6 * 5 + 8 * (2 + 9 * 7)
(5 + 4 * 5 * 5 * 5) * 6 + ((9 + 9) * 7 + 6 + 7) + 5 * 8 * 7
4 + (4 * (9 + 3 + 8) + 4 + (9 * 6 * 2) + 8) * 2
(4 * 6 + 5 * 8 * 9 * 7) * 8 * 7 * ((8 + 6 * 7 + 4 * 9 * 3) + 7)
9 + 5 * 2 * ((7 * 9) + 4 * 4)
5 * 5 * (4 * 8 + (5 + 8) + 9 * 6 * 5)
7 + (7 * 2) + (4 + 7 * 5 * 5 * 4)
6 + 4 + 2 + 8 * (6 + 3 * 7 * (5 * 2 * 2 + 5)) + (7 * 9 * 4 + (2 + 5 + 3 + 5) + 9 * 9)
(4 * 2 + 9 * 7 * 3) * (5 * 4 * 2 * 4 * (9 + 4)) * 2
((4 + 6 + 5) * 2) + 8 * (7 + 9 + 3 * 8) * 3 * 4
4 * (9 + 4 * 8) + 2 * 4 + 9
4 + (4 + 5) + 5 * 3 + 9 * 8
8 + 8 * (6 + 9 + 7) + (4 * (2 + 5) + 2 * (6 + 5 + 6 * 8 + 3 * 3) + 2) + 7 * (9 + 2 + 2 * (2 * 7) * 2)
((9 * 8 * 7) * 3 * (5 + 6 * 7 + 4) + 9 + 7 + 4) * 9 * (7 * 3 * 8 * 7 * 4) * 7 * 2
(2 * 5 * (8 + 2) + (2 * 3 * 7 + 6 + 9) + 6 * 3) + 5 * 2 * 5
3 * 4 + (9 * 6 + 2 + 6 + 7 * 2) + 5 + 6
3 + ((4 * 6 + 4) * 4 * (9 * 3 + 5 + 7 * 3) + 3) * 6 * 9 + 9
5 * 4 + ((7 + 9 + 6 + 9 * 7) + 7)
((3 + 9 * 2 + 7 * 8) * 4 + 3) + (9 + 9 + 5 * (3 * 5 + 7) + 8 + 9)
4 + (3 + 4 + 4 * 8 * 6 * 5) * (7 * 5 * 9 + 7 + 8)
(8 * (3 * 8 + 4 * 4 + 4)) + 7 * 9
(2 * 2 + 9) * 5 + (8 + 3 * 3 + 2) + 7
2 + 7
5 + (3 * 2 * 5 + 4) * (5 * 4 * 9 + 5) * 8 * 6 * 4
8 * 7 * 6 + (2 * 7 * (8 + 2 * 3 * 5) * 5) + 6
8 * 5 * (2 * 2 * 6) * 3 + 7 + 9
((4 + 4 + 9) * 5) * (6 * (6 + 3)) + 2 * (7 * 6 + 3)
(6 * (3 * 9 * 4) + 6 * 5 + 5 + 7) * (7 * 5) * 2 * 2 * (5 + 5) * 4
3 + 7 * (3 + 9)
(9 * 2 * (4 * 6)) + 9
((3 * 6 + 5 * 6 + 9 + 6) * 9 + 9) * 5 + 3 + 4
(8 + (5 * 7 * 2 + 2) + 9 * 6 * 9) * 4 + 4 * 9 + 8 * 5
8 + 5 + 7 + 8 + 7
9 + (9 * 7 * 9 * 2 + 9 + 9) + 7
3 + 4 + 8 + 5 * (3 + (3 + 7 + 3)) + 7
6 + (5 * (2 * 9 * 6) * 2 * 4 + 9)
5 + 7 + (8 * 5 * 4) * 7
6 + (3 * 7 * 9 + 6 * 2 + 3) + 2 * 6 * 2 + 5
(9 + 7 + 8 * 7 * 9) + (5 + 7 * 8 + 3) * 2 + 3 + (2 * 8 + 9 + (6 * 2)) + 2
(9 + 5) + 8 + (5 * 8 + 5 * 2 + 8) + 2
2 * (2 * 5) * (8 + 8 * (2 * 5 + 9 + 9) + 5 * 8 + 2) + 6 * 9
(6 * (4 * 5) + (4 * 5 + 3 * 7 * 2 + 4)) * 2 * 8 * 2
8 * 8 + (5 * (3 * 4 * 2 * 2) + 2) + 5
3 + 4 + 9 * 7 + 5 + 3
3 + 7 + (8 * 5 + 7 * 6)
9 + 5 * 8 + (6 * (2 + 9) * 7 + 7 + 8) + 6
9 * 4 * (5 * (6 * 6)) + 7 * (6 + 7 + 5 * 3 * 9 + 4)
5 + 9 * 7 * (6 + 2)
8 + (9 + 6 * 5 * (6 + 9) * 5) * (3 + 6 + 8)
2 + (7 * 4 * (9 * 4 * 5 * 2)) + (8 + 2) * 4 * (3 + 8)
(5 * 8 * (2 + 7 * 2) * (6 + 4 * 9 * 8 + 3 + 2) * 7) * 8
(8 * (5 * 2 + 5 * 4 + 4) + 8) * 4 * 4 * (6 + 6) + 7 + 9
(7 * 2 + 2 + 9 + 7) * ((6 + 5) * 3) + (2 * 4 + (8 * 7 * 9 * 7) + 5 + 6 * 9) + 3 + 4 + 2
5 + 7 + 4
4 + 8 * 6 * (9 + 4 * 6 + (9 * 8) + 5)
4 + 9 * 2
2 + (7 * 7 * 2 + 2 * 3 + (6 + 9 * 7 * 4)) + 5 * 4
(5 + 9 * 9) * 3 * 2 + 5 + 6
(3 * 6 + 5 + 8) * 9 + 9 * 7 * 3 + 7
((7 * 5 + 9 + 8 * 8) * 5 * 2 * 7) + (2 + 8 + 5) * 3

589
aoc2020/input/day19.in Normal file
View File

@ -0,0 +1,589 @@
18: 48 48
25: 48 81 | 41 7
48: "b"
4: 131 48 | 70 41
20: 61 48 | 57 41
89: 41 41 | 41 48
74: 41 107 | 48 124
98: 41 48
99: 97 48 | 92 41
91: 34 48
100: 48 41 | 67 48
6: 48 100 | 41 132
40: 81 48 | 7 41
124: 83 48 | 130 41
50: 7 41 | 7 48
68: 64 41 | 24 48
60: 30 41 | 86 48
75: 89 41 | 39 48
103: 67 67
58: 41 22 | 48 111
71: 67 34
56: 34 48 | 39 41
122: 48 120 | 41 89
12: 41 18 | 48 98
95: 34 41 | 103 48
93: 110 41 | 34 48
13: 43 41 | 69 48
44: 101 48 | 114 41
69: 106 41 | 32 48
67: 48 | 41
45: 7 48
117: 48 120 | 41 39
46: 48 29 | 41 82
121: 48 49 | 41 47
130: 103 48 | 89 41
132: 41 48 | 48 41
94: 41 4 | 48 76
14: 9 48 | 93 41
26: 41 72 | 48 81
79: 67 1
115: 67 132
15: 41 20 | 48 63
47: 120 41 | 81 48
27: 100 41 | 7 48
11: 42 31
113: 49 41 | 56 48
31: 48 133 | 41 127
131: 90 41 | 28 48
81: 48 48 | 67 41
23: 84 41 | 27 48
84: 18 48
107: 79 41 | 33 48
83: 67 89
49: 81 41 | 7 48
108: 102 41 | 60 48
37: 41 7 | 48 120
120: 48 41
32: 41 96 | 48 95
2: 48 85 | 41 128
102: 48 62 | 41 50
5: 41 110
61: 41 37 | 48 6
97: 41 120 | 48 34
85: 120 41 | 89 48
80: 120 48 | 98 41
92: 48 103 | 41 34
65: 16 48 | 58 41
112: 48 71 | 41 123
70: 87 48 | 115 41
39: 41 67 | 48 41
41: "a"
38: 2 48 | 77 41
110: 48 41 | 41 41
88: 7 48 | 89 41
52: 41 73 | 48 104
96: 100 48 | 103 41
66: 41 126 | 48 121
77: 40 48 | 47 41
3: 48 118 | 41 25
126: 75 48 | 27 41
1: 41 41 | 48 48
19: 48 72 | 41 18
42: 41 68 | 48 105
129: 48 110 | 41 120
72: 48 48 | 41 67
7: 41 41
59: 41 47 | 48 125
73: 1 48 | 103 41
114: 41 117 | 48 73
118: 89 41 | 132 48
51: 41 1 | 48 81
101: 129 48 | 93 41
133: 48 15 | 41 13
104: 48 1 | 41 81
123: 110 48 | 98 41
0: 8 11
55: 48 1 | 41 18
30: 89 41 | 18 48
76: 48 14 | 41 35
43: 52 48 | 112 41
24: 48 109 | 41 38
29: 116 48 | 3 41
106: 88 41
9: 89 41 | 100 48
125: 41 120 | 48 132
22: 103 48 | 18 41
21: 48 83 | 41 51
64: 48 44 | 41 74
111: 103 67
54: 41 36 | 48 55
119: 48 12 | 41 19
35: 123 48 | 91 41
127: 41 94 | 48 10
116: 41 93 | 48 122
8: 42
128: 48 72 | 41 1
28: 41 132 | 48 120
63: 41 59 | 48 17
87: 103 48 | 72 41
36: 48 81 | 41 100
17: 62 48 | 26 41
62: 100 48 | 98 41
34: 48 41 | 48 48
82: 23 48 | 21 41
78: 41 65 | 48 66
33: 120 41
109: 48 113 | 41 99
57: 41 92 | 48 80
86: 48 89 | 41 39
53: 54 48 | 119 41
10: 108 48 | 53 41
90: 81 41 | 34 48
16: 48 5 | 41 45
105: 46 41 | 78 48
bbaaabbbbaabbaababaababbbabbbaaa
bbbbbaabbabaaaaabbaaaabbabaababbbbabbbbababaabaabaaaaaabbbaaaaab
baabbaabababbabbaaaaabba
ababbbbbbbabaaaaabaabbabbbbaaaabbabbaaba
abbbbabaabbbabbbabbaaaaaaaaaabba
bbaaaaaabaabbbababbaabbabbabaaaabbbaababaaaabbbaabababaa
bbbbbaabbabbbbabaabbbbaaaaaaabba
bbbaabbaaababbbbabbbaabb
abbbbaaabbbaabababaababa
aaaababbabaaabaaabbbbbaaaabaaabaaababbbbbaabaabababbbbbbbaabaaaa
babaababaabbbbabbabbbbabbababbaa
babbaaabababbaaabbbaabab
aaaabaabbbababbbbbbbbbbb
aabbbbbabbbbabbbbbbbbababbbabababaaaababbbaaaabaaaabaaaaabbaabbaaababaaaabaaabab
aaabbaabaaaabbbababbbbbbbabaaabaababaabb
abbaaaaabbaabaabbbabbbab
baabbbaabbabbabaabbabbbb
abababbbaaaaabbbbbbbbabaabaababbabbbbbbbbbabbabbaaabaaba
abbaaaaaaabbabbaaaababab
baabababbaaaaaaabbbbabab
babbabaaaaabaabbbbbaaaab
aabaaaababbaaabbbbbbaaaa
babaaaaabaaaababbbabbabb
abbabaaaabbababbaaabbaba
aaabaaaaaabaaaababaaaabaaaaabaabaababbabaabababa
ababbabbaaabaabababaabbaaabbabababaabbaa
baaaabbbbbabaaaabbbabaabbabbbaaa
abaabaaaababababbaabaabb
aabaabbbbabaaabbaababbaabbbbbbabbbbaabababbabbaa
abaaaaaabbaaaabaaabbaaab
aaaabbbbbabaabaaababaaabbbbbaaabbbbbabbbaaaabaaabababaaa
bbabbbbaaababbbbaaababbbbbbaabbaababbabbaaaabbbaaaaabbbaaabbabbbaaababab
babaaaaaaabaaabaabbbabab
aaaabbaaabaaabaabaabbbabaaaabbbbabbaaabbbbabbbbbbbaabbabbbbbababababaabb
abbbabbabbabbbbaaabaaaaababbaabbaabaaabb
abbaaabbbbaaababbbbaaabbabbbbbbbbbbbbaababbbbbbbabbbbabbabbabbbb
babbbaababbaabaaaabbbbbb
baaaabbbbbbbaabbbabbbababaaaabba
aaabbbaababbaaaabaaaabbbbaaabaaa
abbbbaaaaababbabbbabaaabbbaaabba
babbabaabaaaabbbbbbaaaab
abbababaabbbbaababaaabba
aababbbbbababaababbaababababbbbbbaaabbbbaaabaaab
baabbaabaaabaabaababbaaaabaaaabaaaababbbbbbabbbbbbbbabab
bbababbaaaabaaaaabbabbaa
bbababbbbababbabbbaababbbabaabbaabbaaabaabababaa
baababbabababbabaababbab
abbababbbaababababaaabaaababbbabbbbaaaab
abbbbbaaaabaaaaaabababbb
abbbbaaabaaabbbaababbbaa
bbababbbbabaabaabbbbabaaaaaaaabb
aaaabbaaaabbbbaaaaababba
abaaabaaaababbabbaabaaba
babbabababbaabaaabaaabbb
babababbbaaaabbbbabaababbbbaaaaaaabbaababbaababbaaabaaababaaaaabbbabbbab
baaabbabbaababbaaabbbaaa
bbbababbbabababbaaaabaabababaabaaabbabbb
bababbabbabbbbabaababbbbabaabbabaababaabbbaaaabaaaabbaabaaabbaaa
bbabbbaabaaaabbbbbabaaabababaababaaababa
aabbbbaabaaaaaaaaabbbaabbbbabaababbaaabbbabbabbbaaabababbaabbaba
bbbbaabbbabbabaaabbbbbaaabaaabab
baabbabababaabbbabbabbbaabaabaabaabbbbaabbabbabbabbbaaaabaaaaabaabbbaaba
ababbabbbbbaaabbbbbbaaaa
aaaaaabbababbbabbaababbb
ababbabbaaabaababaababaabaababaaababbababaaaabaa
baaaababaabaaaaabaabaaba
bbabbbbaabbbaabbbabbaaabbababaababbbbbabbbabbbbb
bbbababbbaabbbaaabbbbabb
bbbababbbbbbbaababbbaabbbababbbabbabbabb
abaaaaaaaaababbbaaaabaaa
baaaababbbababbaaaabaaab
babaaabbbbbabbaaaaababbbabbbabaaabbabbaa
bbaaaabbbaaabaaaabababbbbaabaaabbbbbbbbabaaaaabbababaaaaaaaabbabbbaaabaababbbaab
aabaaaabbbabbbaaaaaaabaa
ababaaabaabbbbabbbbbaabbaabbabbababbbbbbaabbbbbb
bababaabbbbabaabbababbba
bbbbbbabababbabbbbaaaaaabaabaaaaaababaaabbbbbbaabbbabbbaaaaaabaa
abbbbaaaababaaabaaabaabaabbbbbbbbabbbaaa
abaabaabbabbaabbbabaabaabbbabbbbabbbaaabaabbabaaabbabbaabbaaabba
abbbbbaaababbaaaabbaabaabbabbaaabbababbbaaaaabaaababaabb
abbaaababbbabbbbabbbbababaabababbbbbbbabababbababbbbabbb
aababaaaaabaaaababbbaaabbbabbaabababbabababbabbb
bbbababaaabababbabaabaaabbabbbab
bbabababbbaabbababbababaabbaaaaaaaabbaba
aaabaabbbbaaabbbabababbb
abababababbbaaaaabbababbaabaaaaabbaaababaabbbababbabbbabaaaaabaa
bbbbabaaabaabaabbbaaaabaaaababbbbbaababababababa
aaaabbaaabaababbbaaabbbb
baaabbabbabbababaaaabbabaabaaaabbbbaabbbabaaaabb
aabaaaaaaaababbbabbbaabaabbbbaabbbbbbbabaababababaababaa
babaabaaaaaaabababbaaabbbbbaabaabbababab
aababbbbbbbabaaaaaabaabbbbbabbaabbabbababbbbaaba
bbbabbaababbbaabaabbaaaa
abbbaabbbbbabaaaaaababab
babbababbbbabbbbaabaaabaabbaabbaabbabaab
abbaaaabbbabbbaaabbbbbab
aabbabbbbabababbaaabbbbaaababaabbabbbbbbbbaabbbaabbbabaababbbaabbbaabbaabbbaabbb
bbabaabaabaabaaaabbababaaabaabaa
bbbbbaabaaaaaabbaabbbaababaabaaabbabaaabbbabbaaaabaaaabb
aababbababaaaaaaabbbbbbbbaabaaab
aaabbbaabbbaabbababaabbabbbbabaabbaabbaaaabababbabbbbbba
bbbbbababbabbaaabbbabaabaabbbbbb
aababaabaaaaaaabaabbaabaaaabbaaaaababbbbabbbabbbbaaabbab
baabbaaabbaaaabbaaabbbbbabaabbabbbbabbba
bababaabbabbbbbabaabbbbabbbaaaab
ababbaaabbbaabbababbbbab
babaaaababbbbbbbaaaaaababaabbbba
aaaabbabbaaabbaabaabbaba
bbbbaabbbbbbbbababababbabababbaa
baaabbaaabbaaaaababababa
aaabaaaabbbbbaababbbbababbabbbaaaabbabbaababaabbbaaabaabababaababbabaabb
babaabbababaaabbbababbbb
baabababbbaaaabbbbabbaaaabbabbaabbabbbbb
babbbbababaaaabaabbbbbaaababbaabaabbbbbabbaabaaaaabababb
babbbaaabaabaaabaabaaabb
aaabbbbbbbaaabbbbaaaaaba
baaaaaabaabbbbbbabaababa
ababaaabbbbaaabbababaaaaababbaababbbbaaaaababaaabbabbbaababababbabaabaabbabbabbbbaabaabb
abaaaaaaabbaababbbaababbbbbaabbbbbaabbaa
ababbbabbabbbaabbbbbbbbb
abbaaaabbaabbbababaaaabb
bbababbbababbbababbabbbb
baabaaaababbabaaababaaabbbbaaabbbbbbbbbaaabbaaaaaaabbbba
baaabbabbaaaaaaababaaaabbaabbbba
abaaabbbbaabbaababababbaaabbbaaabaababab
bbbaabbaaabbabaababbababaabbabbbbabbaabaaaabbaabaabaabaabaaaabbb
aabbaabababaababaaababbbbabaabbb
abbaabbabaaabbabbaabaaab
bbbbabaababbbabaabaabbbb
baabaaaaababbbabbbbaaaaabbbabababaababaa
baaaababbbaaababbbabbaabaaabbaaa
babbabaabbaabbabbbabbabaabaaabab
aababaabbabaabbabbbabbba
aaaaaaaaabbaabaaaabaabbbabbabbab
babbbaabbbabbaaabbabbbbabaaabbbb
abbaaaaaabbbabbababbbbbb
babbabbabaababbaabbbabbbaaababaa
bbabbbaaaabaabbbaababaabaababaabaaaaabba
babbabaaaaabbbbbbbbabbba
baaaaaaabbbbbababbbbbbba
bbbbabaaaaaaabbbababbbba
aababbabbabaababbaaaabbbbaaabaaa
babaabbabbaaaabbbaabaaba
abbbaaabababababbbabbbbb
bbbbaabbababbabbababababbbbaaababbbaaaba
aabaaabaabbabababbaaaabbababaabbbbaabbba
bbbaabbabababbabbbbbbbbb
abbababbbbbbbaabbaaabbababbbbaabaabbaaaaabbbbbab
ababbabbbbaaabbbababbabbaaaaaaba
bbabaabababbbbabbababaabaabaabbaaabaabab
bbaaabbbbabaabbaaabbbaba
baaaabbbbaabbaaaabaaabaabaababaabbbaabaa
aababaababbaaaaaabaaaabb
bbbbabaababaababaaaaababbbbbabaababaababbbbaaaab
abababbbbababbbbbaaaabbbaabaaaaaababbabababbbbbbbbaabbba
bbaaaaaaabbbbaaabaaaaabb
bbabaaaaabbabaaababaaaabaaabbaab
bbbbbababaabbaaaaaaaaaaaabaaaabaabaabaabbaabaaab
baabbbabaaaaaaaabbbabaaaababbabbaaababab
aabbaabaabbabaaaaabbbbaabaaabbababbabbba
aaaabaababaaabaabbaaaaab
abaabbabababbbbbabbbabbabaabbaababababaa
bbbbaabbbbbbaabbbaabbbaaaabbbaabbaabbbababbbabababbaabbb
bbaabbaababbaabaabaaaabaaaabbaaabbababaabbaabbbbbabbaaaabbbbbbababbbababaabbaaaabbaaabbb
aabbbbbaaabaaaaabbaaaaaabbabaabbabbaaaabbbbbbbbbbbababbbbbababab
bbbbaabbbbbaaabaaabbabbabbababbaababaabb
abaaaabbaaaaaaabbbbaababbabbbbaabbababaaaabbabbb
bbaabaabaabbabbababbabaaababaababaaaaaba
bababbaaabaabbabaaababaaaabbaababaabbaabaabbabbababaabbabaaabaaaaababbabaabaaabb
bbbaaabaaaababbbbbaabaabbaabaaba
abbabaaabbaaaaaabaaaabaa
bbaababbbbaaababbabaaaaaaabababbaaabbabb
abaabaaaaaabbbbbabbabaab
abbbaabbaabaabbbbaaaaabb
abbaaaabaaaaababbaaaabbbababaaabbaaabaaa
bbbaaabbbbaabaabbaaaaaab
aabbbbaababbbabaabaabbba
aababbbbbaabbbaaaaaabbabaababbba
abaaaaaaaabaaaabbabaababbbababbaaabbbaabaaaababbbbbabbba
bbaaaabaabbbbaabaaababaababbaabbbabbbaaa
aabaabbbbaaaabbbaabaabbbbbabaaabbbabbbbaaabbbababababbbbbaabbbbb
aabbaabaabbaaabaaabaaaab
bbbaabbbabaaaaabaaaababb
babaaaabbbbabbaaaaaabaabaaaababa
baaaabbbbbaababbbbaabbab
bbabbbbabbabbbbaabbbbabb
baaabbababbbaaaabaabbabbaabbabbb
abaabaaababbbababbabbaabaababaaaaaabbbbabbbaabaaaaabbaaaababbababbbbbbaa
aabbbaabbabbabaaabbaaaaaababbaaaababaabaabababbbaaabbbbaaabbabab
babbaaabbaaabbababaaaaab
abbaaabaabbaaaabaabaaabaababbaba
bbaabbbbaabbaabbbaaababa
aabaabbabababbbbabbabbabaaabaaab
ababaabbbbbbbaaaababbaba
abbbbaaaabaabbabbaabbabbaabbbabb
babbabaaaabaaaabbbbbabab
bbaaaaaaaabaaaaaababaaaa
aaabaabbaaabaabbbbaaababaaababbbaaabaaabbababaaa
bbbaaabababaaaabbabaabaabbaabaabbbbbaaaa
aaaabbbbabbaabbaaabbbbbb
abbabaaabaabbbababbbaabbbabaaaaaaaabaabbbbbbbabb
bababaabbaabbaaaaababbbbaaababababababbb
bbbbaabbabbbbaabbbaaaaaaaabbbbaababaabaaaabbaaaabbbaabbb
aaaaaaabbbbbaaabbabbaabaababbababababbbaaabbabbbbaaaabaa
babbababbabaabbabababaaa
aaaabaabbabbbbaabbbbbaabbaaaaaabbbaaaaabaabaabbbbabbbabbabbaabba
aaaabbabaabaaaaabaabaaaaaaabaababbbaabaa
aababbaaabababbaaabbaaaa
baabaaaabaaabbbaabbbaabbbbbaaaab
baabbbabaaaabaabbabbababbabaaaabaabbbabaaaabaaabbbbbbabb
ababababbbaaaaaaababbbbbbbbabbab
aabbbaabbaaabbaabaabbaaaabbabaaa
bbbaabaabaabbabbaabaaabbbbbaabaabaabaabbbbabbbaabaabbbbbbbbbbaaaabbbabab
bbaaababaaaaaaaabbbaabbb
abbbbbaababbbbabaabaaabaaabbbbaaaabbaabababbaaaaabaaaabbbbbababa
abbaaabababaababaabbbbaaaabbbbaaababaaaa
abaaaabaabbaaabababababa
abbaababbaaabbbaababababaabbaabbbbaaabaa
abbaabaabaaaabbbbbbbaabbaaababbbababaaba
abbbbbaabaabbbaaaaaaababbaaaaabb
abaabaabbbaabaabaabaabab
aabaabbbabbaaaabaabbbaba
bbbbbbababbbbbbbbbababab
babbbbabbabbbbabbbbbaabbbbbbaabbaaaaaabbbbbaabaa
bbabbabbbbbbbabaabbaaaababbabbababaabbaabbbbbbaaabbbbbbaabbabababbabaababbaaaaba
abaaaabaaaababbbaaabbbbbabbbabbaaaababaa
aababaaabaaabbababaaabba
abbaabbabbabbbaabaaaaabb
aababaabbbaaaaaabaabbbaabbaabbbbabbbbaaaaaaababb
abaabbbbaabbabaabaaabbaaababaabaabbabaab
bbbbaaabbabababbbbbabbaabbbbbabbababaaaa
bbbbaabbaaabaabbbbbbbabb
abbbaaabbaabababbabbbaaa
abbaabababbbabbbbbaaabbbaabaaaabbbbaaababbbbabba
bbbababbabbbbaabbabaabababbbaabaaabbaaab
bbabbbbbabaaabbabbbaaabbbbbaaababbbaababaabaabbaaabbaaabbabaaabbbbbbabbaaabbbaab
aabbbaababbababababbabaabaabababbbaaaaab
babbaaababababbabbbbbbba
baabbaaabaaaababbbabbaabbbabaababbbbbbaaaaaaabaa
abaabaabbbaabaabbaaabbabaabbbbaabaaabaab
babbbbababbbbbbbaaaaabaa
babaabbaabaaaaaabababbaa
aabbbbaabbabbbbaabbbbbaabbbbbababaabbbabbaabaaabbbaabaaa
abbabbaaaabaaaaaababbaaaabababbbaaaabababaaabbaa
baaaaaaabbaababbbbabaabaababbaabbbaaaabaaaababab
bababbabaabaaababbbaabab
aaababbbaaabbbaaaaabbbab
aabaaaaabbbabaababaaaaab
aabbbbababbbbaabababbbabbaabaabb
bbaababbbbababbaaaababaa
baaaaaaabbaabbbbbaabaaba
aabbabaabaabbaabbbbabbbbaaabbaababbabbbb
bbbbbaabbabaaaaaabbabbab
bbaaaabbaaaabbbbbbbbbbbbbabababa
baaabbaabbabbbbaaabaaababbbbaaabbabbabababaaabab
bbbababbabbbabbbabbaabbababaabbb
bbabaababbbbbabaabaaaabaabaababa
bbaababbbbbbbbbabbabaabbbbaababa
abbababbabaabaabbaaabbabbbbababababaabbb
aabaabaaaabaaaaaaaaabbabaaababbbaaabbbbaabaaaaab
babbbbabababbbaabbaabbbaabbaababaabbbbbaabbbbbbabbaaaaaaaaaaaabbabababbb
bbabaaabbaabbaaaaabbbaba
ababbbbbbbababbbbbaaabbbaaababba
bbbbbbabaaaaabababbbbabb
bbbababbabbbbaabaaaaaabbaaaabbbbaaaaaababbaabbab
bbabbaaaaaaabaaaaabbabbb
babbaaabbbbaaaabbaababbbabbbabaababbbbbabbbabbbaaabbbbaaaaabaaaabaaabbbb
bbabbaababbaabbabaabbaaaaabbbbbbbbbabababbabbbababababaa
abbaaababababaabaaaababa
aaabbbbbabaabbababaaaabb
ababaaababaaaaaaaabbabaabbabbbbbbabbbaaa
aabababbbbaaabbaaaababababababbb
baaabbbaabbbbaabbbabbbbababaaaaaabaabaabbbaaabbaabbabbba
aaaabbababbbaaabababbbabbbabbaba
bbaabababbbaabaaaaaaaaaababbaaabbbbababbabbaaaabababbaaababaaabbaababaababaaaabaaaaabbaa
aabbaababababbabbaabbaba
aabbaabbaabaaabababbbbabaababbabbbaababbbabbbbaa
ababababaabbbbbbbaaabaaabababababaaababbaaaaabbababaabaaaaaaaabaaababaab
baabaaaabaaaabbbabbbbbbbabbabbaabbbaabab
abababbabbaaaaaaaabbabbabaabaaba
baabbbaababaaaabbbaababa
abbbabbaababaaababbbbbab
bbaaaabaabbaaabbbbabaaabbabbbbbbbbbabbabbbaabaaa
baaabbaaabaaaaaababaabbb
baaaaaaaaaabaabbaabbbbba
bbbbbbabaaaabbbbbbbaabbabbaabbba
bbbbbababaaababbabbbbaabbabbabbbaabbaaaabaaaabaaaaaabababbbababa
aaaaaabbbabaaaabbabbaaba
aabaaaaaababbbbbaababaabbbbabaabaabbbbaa
bbaabaabababbbabbabbabbababbabababaaabab
baabbbaababaabaabaaabbaaaabaabbababaabaaabbbabaa
bbbababbbabbaaaabbabbaaaaabbbbaababababbaaaababb
ababaaabaabaabbbbaaaabba
abaaaaaabbbababbbaaaabba
aaaabbababbbaaaabbabbaabbbaaabbbabbbbababbbaaaab
babaabbaabbbbaabbbbaabbb
bbaaaabaabbbbaabbbababbbaaaabbabbbaabbab
aababaabaabbbaabaabbaaaa
aaaabbbbbabbabaabaaaaaab
aabbabbabbbbbbabaaaababa
bbabbbbaabbbabbbabaabaabababbbbbabbabbbb
bbbaabbababbabbaababbaabbbbbabaaabbaaabbbaabababaabbababbbbabbbabbaabaaabbbbaaba
bbbabbaabbaababbbabbbbabaaaabbbbababbaaababaabbb
aaaabbabbaaaababaabbbabb
abaabaaababaabbaabababbaababbaaabbbaabbaabaaaabbbaaaaabbbbbaabbbaaaabaaa
bbababbabbbbaaabbabbbbabbbabaaabaaababaa
baabbaaabbbbabaabaaaaabb
aababbaaababbbbbbaaabbbaabbbabab
aaaabaabbbabaaaabbabababbbaabbbbbabbaaaabaaaaaab
babaabbaaababbaaabaabbaa
abaaabaaabaaabaaaababaaaaaaaabbb
bbbbaabbaabbbbaabbbababa
bbaaaabbaabbaabbbbbabbba
aabaaaababbabaaaabaabbabaaaaaababbbbbbbb
aababaabaabaabaaababbaba
bbaaaabababbabaaaaaabbbb
babbbaabbbbababbbbabbaabaababaaa
baaabbbaaaabbbaabbaababa
abbbbbbbbbbabaabbabbabbb
aabaabbbaabbabbababbaaabaabbabbbabbabaab
aaabaabbaabbbbaaabaababa
abbababbaabbbbaaaaaaaaaaaaabbbbbbabaabbb
aababaaaaabbbaabaaaaabbb
aaaabbbbbbbbaabaaabababaababbbaa
aabaabaaabbaaaababbabbab
aaabbbaabbbbabaaabaabbabbabbaaaaababaaabaaabaabbbaaabaab
bbaaabaaaabbabbbaabaaaaababbababbbabbbaa
bbaabbbbaabaabbaabbbbbab
baabbbaabbaaaabaaaaababa
aaaaaaaaabaabaababbaabbb
abbbbababbaababbbaababbaabaabbabbabaabbabaaaaaab
aabbbaabbbabbbaaaababbba
ababbaaaaabaabbbabababbb
aabbbaababbbabbbaababaaaabbbbababbbaabaaabaaabbbbbaabbaa
bbbaaabbaababaabaabbabbb
baaaaaababababbaaaabbbbaaabaabaa
abbaaabababbbbabbbbaabbaabaabaabaaaaaaabbaaabbbb
baaaabaaaabaabaabaaabbaabaababbaabbbbbabaabaaababbbabaabaaaababb
ababbabbbbbabbbbaababaaa
bbbaaabbbababbabbaabaabb
babbbaabbbababbbbbbabaababbbbabbbbbbabbabbaaaabaabababbabbbbbbbbabbbaaabaaabbbab
bbbaabbababaababbaabbbba
aabaaabbbbabbbbbbaabbbaababbaaabbaaaaabaaaaaabbbbbaaaabbbaabababbabbaabaabbabaaaaabbabab
aababbbbabaababbbbaababaaabbaaab
bbaaabaaabababbaaabbababaaaabaaabaabbaaabbaababaaaaababababababbbaaaabbabaaabaaaabbaabba
abbaababbaaababbbbbaaaababbabbbbbbabbaba
aaaabbaaaababaaabaaabbbabbabaabababaabbb
baabaaaababbabaaaaabaabbbaaaaababbbbabba
babbababbbbabbbbbabaaaaabaabbbaaaaaabaabaabbbbabbbaaabaa
babbbbabbbbbbbabaabbbaaa
abbaaaababababbaababaaabbaabbbabbabbabaabbaabbabbbbbabbb
bababaababbbaaabbabbaaba
bbabbbbaababaaabbaabbbaabbbaabbbbbbaabaa
abbaaaababbaaaabbabaaabbbbabbaaabaaaabababbbbbbaaaababaaabaabbaabababaaa
babaaaabaaaabbbbbaabbbabababbaba
abbaaaaaaabaaaaaaaababaa
aabbbaabaaaaabababaaaaab
baaabbbababaaaabbbbbabab
babbbabaaababaaaaabbbabb
bbabbaabbbaaaabaabbaababbbbbabba
abaabaabbababaabbababbabbbabbaaabbaabaaa
aabbaabaaababaaabbababab
bbababbaaaabaaaaaaaabbbbbbbaaaabbbaabbab
bbaababbbabbaaaaababbbabbbaaabba
bbbaaaaabbbabaabaabaaaaaabaabbbaaabbaaab
babbbababababbabbabbbabb
bbbbbbabbbaaabbbbabaabaa
bbaabbbbbbabababbbbabbabbaabbbbaaabaabbbbbabbbbbbaabaaaabababbbaaabbbaaa
bbbbbababbbabbbbabbbbbaaabbaabaaabbbabaaabababbb
aaaabbabaabbaaabbaaabbbabbabbabaababaaabaaabbaabbabbbbbabaabbabb
babbaaabbbabbbbbbbbabbbbbbbaabbaaabaabbabbababaaaaaabbaa
abbaababababaaababaaabaaabaabaabbbababbabbbbbaaaaaaabbba
bbbbbbabbabababbabbbaabbaababababbaabbababbbbbab
baaaabababbaaabbbaabbaba
aababbbbbaabbbabbaaaaaba
abbbbaaaababbabbabbaabbaabaabbba
bbbbbaabbabaaabbbbaaabba
babaabbabaaabbabbbaaaaaaabaaaababaaabbba
bbbaabaaaabbbaaabbabaabb
aaaabbabaabaabbaabaaabba
bbbabbaaaabbaababaabaaba
bbabbbbaabbbbbbbabababbabbbababa
baabbbabbabbaaabbbbaabab
abbaaaaababababbabaaaabaaabbbabaababbbba
aaabbbaabababaaaaabaabab
baaabbaabababbabbaababbb
abbaabbaaabbbaabbaaabaaa
ababaaabbabaaaaaabbaaaaabbaabaaa
ababababbbaabaababbbbbba
bbbbaaabbbabbaaabbbaaababbabbaaabaabbabbabbbabab
ababbaaabababaabbaababbaaaabbbab
abbbabbbaabbabaaaaaabaabbbbbbabb
aababaabbbaaaabbabbaabaababbbbbbbbbbbbba
bbbaaabbbbbaaabbabbbabaa
abbabaaaababbaaabababbaa
babbbabababaaabbbbbaabab
bbbabbbbbabaabaaabbbabab
aababbabbabbaaabbbbabbaaaaabbbba
aabababbbbbbaaabababaababbbaabbabbbababbabbabaabaabbbabbabbbabbb
aababbabbbabbaaaaabbaaaa
bbbabbaabbbbbabbaababababaabaabb
baaaababaabbaabbabbaaabbbaababbabbbbabab
aababbaaabbbbababbaababa
bbabaaabababbbabbaabaaaababbaabb
abbaaaabaaaaaabbaabbabbb
babaaabbbaabbbabbbabaaaabaaaaaaaabbbabaa
aabaabbbbbaabaabbbabaaaabababbba
abbbbababaabaababbbbabbbabaaabbbaaaaabbbabababaabbbaabaa
baaabbbabbaabaabababbbba
bbbaaaaaabbbbbaabbabaaabbbbaaaab
aababaabaabbbbaaaabaaabb
aabaabbbbabaababbabbbabaabababbb
bbabaaabbaaaaaaaaaaabbbbaaaaabaa
baaabbabbbbaaababbaaabbbababbaba
abaabbabbabbabbababaababbabbbabbbbbbbbbb
bbaaaaaabbbbaabbbbbbaaaabbaabbaa
aabbabaabbababbabbbaaaab
baaabbbbaaababaabababbba
bbababbabbbabbaabbaabbbbabbaabbbbbaaabba
baababbaaabbaababaaaabbbbaabbbba
baababbababbbaababbbaabbbbabbaababaabababbbabbba
baaabbbababbaaabaabaaabb
babbabbaaabbbbbbabaaabbb
bbbaaababbbabaaaababbbbbbaababaa
aaababbbaaabbbbbbbabaaabaaabbbaabbaabbbaaaaabbbabbababaa
bbababbababababbbbaaabaa
babaabbaaaabbabbbaababbbaaababab
baaabbbaabbaaababbbbbabb
bbaaabbbbaabbbabbaababbababaaaabbaaaaababbaaabaabababbba
aabaaaababaaabaababaaaabaaaaaaba
aabbbbaaabaabaabababbabbbaabbbaabaaabaabaaaaaabaaababbba
bbabbaabbbbabaaabbbaaababbbaaaabbbababab
aababbbbababaaaababbabba
babbaaaabbbbabaabaababbbababaaabaaaabaabbababbaabbbabbaa
bbabbaaabbabbbbabaabbaaa
bbabbbaabbaaaabbaaaababb
bbabbbbaabbbbababaaaaaaaabbaabbb
abaabaaaaaaaaabbabbabbbb
aabaaabaabababababaaaababbbbbbababaabbbbbbbbbbbbbaaabbbb
babababbbbaabaaababbaaababaababa
abbbbaaaaabaabaabaababbaababbbbabbabbbab
aabaabaaabbbbaaaaaaaaaaaaababaaabbabaaabababaaaaababbaba
aaaabaabababbabbaaabaabbabaababbbaaaabbbbbbababa
bbbaabbabaaabbabbababbba
ababbbabaababbbbbabbbbba
abbaaaaabaabbaaababbbbabbbbbaaababaaaabbaabbabab
baabbaabbbabbaaaabababbb
abbbaaababbabaaababaabaabaaaabba
ababbaaaabbaaaaabbbbaabbaaabaaaabaaaaaabaaaabaaaaabbaaaababbbbaa
abaaaaaabbaaaababababbabababbabbbbaaabaabbbaabaa
aabbbbabababbbbbbaabbaba
bbbababbbaaabbaaabaabbba
abbaabaaababbaaaaaabaabbbbaaaabaabbbaabaaabaabab
bbabbbaabaaabbabaaabaabbbbabbbaabbbaababbaaaaabbaabbbbba

1728
aoc2020/input/day20.in Normal file

File diff suppressed because it is too large Load Diff

44
aoc2020/input/day21.in Normal file
View File

@ -0,0 +1,44 @@
fngc bhnfx ssfnt znrzgs fcdf bgmh pgblcd lmfrl hrcfc bbfxk dhfng xppbd ntggc fhdx kfkjg tzsx xpfhcf jmbpvd qchmh svfbm zmjjbr jjhl pcqd xgfgx ghlzj jxrnq ncgqfdk fthkdz kmdrkg cnxtjz lfpc lvbpvc tzxdf bgx pvkrf txdjzsk dzgljz snxzjb xjd zsmmf jdvxzv crbdxfx ckspdd kmnmh dstct vhbqgc nqbnmzx rhzdcb vvv jmhsl mrfqdkt phzm lqjfs pgpgvs (contains shellfish, soy)
rxlps pnddb lvbpvc pgblcd nqbnmzx ztd fzlffdz qfqskr dhfng dhphkz sbjzc kghc xbgz vtcs xdhc crbdxfx vmsksq thzkkk kmnmh lljxf pgrc jhxv xpfhcf vbdgvk dzgljz jxrnq ckxdjf kdkm jbtf dnxdd vhbqgc nffxvs hgxz nmbdn ntggc ppcqfhmd bgmh jptf lrj vjdvrf brsqck fnll lbhzxvf ztc lfpc kpd svfbm dxclx bfrhb nmmv tzsx qctchfv pgpgvs tlsd mgvs znrzgs rhzdcb jjhl bnd nt dstct ghlzj stndbt (contains soy)
vmsksq jjrsrf dfdkm xjd kpd skzz bmvfs fgxdq kmtmlx fzlffdz zlgfs zfc tmlz ndmrz dstct ddpc ksvfdjt dxclx jsgkn ghlzj dgsbm fszjvn dqjjt dqcg zmjjbr hrcfc cbxp dzgljz pgblcd txdcjdc ckspdd fsmz rsrncv zbjnr ckxdjf ntggc dhfng nmbdn brsqck pkzs tzxdf tfvcrd znrzgs vsn brdxmlfl bclml nntlxx dhphkz ttvvp kfkjg zbblv gdmj xppbd nqbnmzx lhsl bqlk shjxf fvz mhtrd (contains shellfish, eggs)
cnxtjz dhfng zszg bgx dstct jdvxzv vbdgvk dfdkm xhkdc vjdvrf zjkc nfh ndmrz ztc nffxvs nqbnmzx mrfqdkt pgblcd gdmj ntggc kvljbg znrzgs cbsqvgt tlsd vmsksq gsn hpvmrm brsqck fsmz nmmv kmdrkg ppcqfhmd crqhxx bhnfx xjd stndbt qfqskr hqj lktt lhvv kfkjg (contains soy, eggs, sesame)
kmnmh zfc xdhc lfglf tzsx txdcjdc vhbqgc nfh vmsksq rbpxvk qnhck dhfng ggjh pgblcd jhxv ntggc fthkdz ksvfdjt nqbnmzx xppbd bhmvf dstct rpbv ztc tfvcrd kjzb lqjfs nmbdn mhtrd tmsllr ckxdjf jlgr zjkc rrhg gsn jmhsl kdkm shjxf dgsbm pcqd zmjjbr hgxz pgpgvs bjp snxzjb jlls crbdxfx qfqskr ghlzj znrzgs gffvc xxczt lktt ncgqfdk zszg jsgkn kvljbg sbjzc bmvfs fnll rxlps tmlz pnddb zlgfs (contains soy, eggs, sesame)
nzdttq kpkv fthkdz dzgljz znrzgs pcqd pgpgvs lktt dhfng tjrj xhkdc cnxtjz hgxz rxlps fvz rkvq tsnr cbxp fcdf lfglf mhtrd qqtpvf fgxdq snxzjb dth gsn zsmmf ksvfdjt tlsd bclml vvv vsn qctchfv kmnmh dstct hqj rhzdcb dqcg ntggc nntlxx cd ddpc stndbt bgmh tmsllr lhsl mxrp ggjh jjhl svfbm vmsksq ghlzj txdjzsk zfc bnd dnxdd vpj nmmv jdvxzv zjkc bhmvf thzkkk jjrsrf zvgdp nqbnmzx kvljbg vbdgvk jzdqp brdxmlfl pvkrf bbfxk lljxf zmjjbr dfhtlrg mrfqdkt (contains fish)
nntlxx pgblcd lfglf tzxdf mxrp ntggc tfvcrd jxrnq ncgqfdk pmlpk xpfhcf dnxdd fvz jlls rsrncv xhkdc qnhck jjhl kmdrkg nmmv dstct nqbnmzx bgmh zmjjbr qqtpvf xjd dhfng bnhhr bmvfs kghc tsnr lhvv xdhc ndmrz xppbd crbdxfx pnddb qfqskr bgx lhsl zgthq ghlzj kdkm sdxhbf xbgz cnxtjz ksvfdjt gsn dqjjt rbpxvk jlgr nnqnj pgpgvs lgkbt bclml (contains dairy)
nmmv kfkjg lqjfs pcqd rsrncv qlf cbxp dstct ntggc tlsd fbmjp dth ddpc nzdttq txdjzsk tsnr kjzb rpbv jxrnq xgfgx fzlffdz mxrp cd kmnmh rbpxvk zjkc mhtrd vhbqgc dhfng qqtpvf nqbnmzx bhnfx gdmj znrzgs nmbdn qctchfv bgmh pgblcd fthkdz kdkm pvkrf jlls pnddb mrfqdkt jmhsl ghlzj jlgr jmbpvd xppbd sbjzc (contains soy, wheat)
qlf fngc mgvs dstct rbpxvk qctchfv rmqvb rcznlx vmsksq xhkdc pgpgvs lljxf zvgdp ncgqfdk jsgkn jhxv qfqskr kmdrkg dnxdd jbtf jlgr zgthq sdvnc pnddb pgblcd txdcjdc nqbnmzx bgmh nfh ckxdjf vgqftvk jjrsrf cd txdjzsk tfvcrd kvljbg lrj znrzgs dhfng pcqd zfc bqlk ghlzj (contains peanuts, eggs)
pvkrf xgfgx scdgmh rpbv ntggc xpfhcf snxzjb dqcg lljxf ckxdjf fsmz dstct hrcfc mrfqdkt fgxdq xppbd dqjjt txdcjdc znrzgs dfdkm bgmh dzgljz rrhg nqbnmzx cbsqvgt thzkkk zvgdp jjrsrf pgblcd vjdvrf tmlz sdxhbf fvz kmdrkg xhkdc zsmmf vbdgvk tzsx dhphkz kvljbg sbjzc xcnkt dhfng kdkm lqjfs pcqd kmnmh pmlpk bhmvf (contains sesame, dairy, eggs)
cnxtjz pgblcd qqtpvf pvkrf zmjjbr skzz ghlzj kpkv tmlz zbblv ntggc qnhck kjzb pcqd sdvnc lhvv fzlffdz ztc xxczt cd fvz znrzgs mxrp rmqvb tzsx jmhsl vtcs bfrhb lvbpvc ckxdjf bjp vvv dhfng nqbnmzx sbjzc pnddb rkvq bnd tjrj pgpgvs jjhl zbjnr scdgmh bhnfx dstct skhp bqlk fgxdq cbxp thzkkk (contains eggs, dairy)
mrfqdkt crbdxfx pzvddz sbjzc kmdrkg lbhzxvf hqnm ntggc fvz rhzdcb rxlps tfvcrd dhfng lfpc ztd pmlpk txdjzsk xhkdc bjp nntlxx shjxf sdxhbf fcdf snxzjb hqj jmbpvd fsmz kghc mfqqh nmbdn pgblcd dstct ckxdjf zgthq lktt skhp fthkdz scdgmh bbfxk brdxmlfl nqbnmzx fhdx pcqd ggjh kjzb zvgdp jjhl lfglf qctchfv blx dhphkz znrzgs xpfhcf stndbt tmlz (contains shellfish)
ndmrz mxrp lfglf nqbnmzx dhfng pgpgvs lrj kjzb vcvcrxx cczqczv lhsl fcdf ncgqfdk hqj dxclx rcznlx bhmvf fgxdq ntggc jhxv scdgmh pkzs fszjvn jjrsrf zmjjbr pgrc xjd kghc xhkdc vsn dstct ghlzj dktxc ztc pcqd pgblcd nnqnj nzdttq (contains sesame, peanuts)
bfrhb vsn bclml jqpc lrj bnhhr cbxp lfpc bjp pgblcd nqbnmzx dhfng vgqftvk bgx vbdgvk ksvfdjt jxrnq ztd xcnkt znrzgs dqcg vpj sdxhbf bqlk lfglf xjd kjzb lktt pvkrf lhvv jzdqp qlf ddpc rxlps zbblv hqnm brsqck kghc dknxl bhmvf zlgfs cd kpkv crbdxfx jmhsl sts tzsx xdhc ggjh shjxf ssfnt bbfxk kdvq hqj ghlzj hrcfc dstct bgmh xhkdc nnqnj jbtf tmlz zgthq (contains sesame)
kvljbg kjzb hqj xdhc ssfnt ckxdjf mhtrd rkvq bgmh pgpgvs bqlk ncgqfdk qchmh mxrp lhvv bclml jjhl kfkjg pvkrf tmlz kghc ghlzj znrzgs rrhg zbjnr qnhck dknxl crqhxx kmnmh jjrsrf bbfxk jlgr lfpc scdgmh dhfng kdvq xcnkt cbxp gsn ndmrz vcvcrxx xpfhcf xhkdc lfglf hqnm bhnfx ntggc dstct lvbpvc rsrncv nnqnj mfqqh qqtpvf lgkbt zsmmf nqbnmzx cczqczv (contains fish, soy)
nqbnmzx dth ndmrz ncgqfdk xhkdc pgrc ntggc zmjjbr fnll nmmv dqjjt jdvxzv lmfrl skzz txdjzsk bjp lbhzxvf rrhg kpkv pnddb vcvcrxx kmtmlx pgblcd bfrhb vmsksq crbdxfx jlgr xxczt dgsbm snxzjb lqjfs vvv dktxc dhfng xppbd xpfhcf bhnfx qfqskr scdgmh lvbpvc fgxdq kmnmh vhbqgc svfbm zbblv zsmmf ssfnt nfh dstct pzvddz rcznlx zvgdp sbjzc ggjh znrzgs skhp fszjvn brdxmlfl mgvs tzxdf cczqczv rbpxvk vjdvrf nmbdn (contains wheat)
vhbqgc vcvcrxx tmlz dth znrzgs bhnfx brdxmlfl nqbnmzx xhkdc vtcs lqjfs bnhhr ncgqfdk bmvfs ghlzj vgqftvk rsxpjt xgfgx vvv ntggc dstct vsn dfdkm rcznlx jqpc pgblcd zszg jdvxzv zlgfs blx cd lmfrl zbjnr jbtf shjxf kghc fthkdz lhvv lgkbt crqhxx cczqczv hpvmrm nzdttq dxclx jzdqp qnhck rhzdcb kfkjg ztd pgpgvs hqj lfpc jmbpvd bvnbp mfqqh bbfxk ssfnt pvkrf bqlk fbmjp (contains eggs)
ddpc tlsd rkvq rpbv hqnm shjxf dth bhnfx pmlpk sdvnc zsmmf znrzgs kjzb jhxv vcvcrxx rsrncv dqcg jxrnq lfpc mhtrd fthkdz pzvddz ztc nfh cbxp tspqs svfbm mgvs bqlk fvz hqj hrcfc vbdgvk ckspdd fbmjp fsmz sts txdjzsk rsxpjt tzxdf cbsqvgt jmhsl pgblcd txdcjdc skhp lhsl xdhc dhfng zmjjbr gffvc vgqftvk zszg rhzdcb jptf dstct stndbt rbpxvk ntggc ksvfdjt xhkdc lktt snxzjb zvgdp nqbnmzx cd bhmvf jjrsrf pkzs kpd dfdkm bnhhr bgmh qlf ttvvp zgthq vmsksq xgfgx jzdqp fhdx brsqck vjdvrf sbjzc cczqczv jqpc kdvq jbtf (contains soy, sesame)
bmvfs dfdkm pvkrf jlls cnxtjz thzkkk hgxz zsmmf blx jhxv jjrsrf vsn lfglf cbxp ghlzj nntlxx zbblv fcdf jxrnq mhtrd lljxf dhfng xxczt fthkdz lmfrl kmdrkg lvbpvc vpj jsgkn pgpgvs skhp dknxl kpd bhnfx nt rsrncv lqjfs fgxdq ppcqfhmd bclml xhkdc dstct ztc fbmjp dzgljz nqbnmzx ntggc zmjjbr bjp dktxc dxclx mxrp hrcfc zvgdp ncgqfdk tjrj sdxhbf xgfgx lhvv bnhhr ckxdjf bqlk tfvcrd jzdqp bgx znrzgs lhsl fhdx crbdxfx vcvcrxx bnd nffxvs (contains peanuts, dairy)
jbtf skhp lmfrl nfh mxrp pgblcd tmlz ppcqfhmd dktxc sdvnc kvljbg bjp txdjzsk lhsl rsrncv pgrc jjrsrf mrfqdkt dxclx dstct jdvxzv fgxdq bhnfx lgkbt fcdf xpfhcf nnqnj crbdxfx dhfng tspqs crqhxx zfc qlf hpvmrm nzdttq lfpc vsn pnddb vvv xhkdc jlls mgvs lbhzxvf sts lfglf jjhl qctchfv dth cczqczv cnxtjz tzxdf brdxmlfl ghlzj ksvfdjt znrzgs vcvcrxx ztd txdcjdc cbsqvgt nqbnmzx (contains dairy, wheat)
pmlpk dxclx bgmh snxzjb nfh ckxdjf kghc gffvc hrcfc kjzb dgsbm kpd kmnmh lqjfs xcnkt ntggc jmhsl dfhtlrg vtcs zvgdp tzsx dhfng tmlz xhkdc ztc nzdttq ncgqfdk bbfxk jptf zlgfs dktxc vjdvrf bfrhb phzm hpvmrm rxlps kdkm kdvq kfkjg pgblcd pcqd xdhc xbgz dhphkz sdxhbf nqbnmzx znrzgs nnqnj xjd ghlzj dknxl zsmmf vsn blx gdmj bmvfs sbjzc rrhg rmqvb tsnr pnddb cd pgrc jsgkn xpfhcf zjkc jlls bhnfx vhbqgc bgx lgkbt txdjzsk qqtpvf (contains soy)
lmfrl crbdxfx kmdrkg dgsbm jptf jbtf nqbnmzx phzm ntggc hqj qctchfv nt pgblcd brsqck mfqqh ztc lqjfs dfhtlrg dstct cczqczv svfbm nffxvs bfrhb dhfng bbfxk sbjzc tmlz pvkrf lgkbt fhdx pmlpk jsgkn bnhhr lvbpvc tzxdf jhxv bclml tlsd ssfnt dxclx scdgmh fthkdz zvgdp fzlffdz fcdf lhvv tjrj xxczt jmbpvd hrcfc xpfhcf xhkdc ddpc kdkm mgvs xdhc fvz rcznlx mhtrd fngc fsmz sdxhbf vvv xppbd vgqftvk thzkkk zjkc cd vtcs znrzgs (contains eggs)
ppcqfhmd gdmj zgthq dfdkm nqbnmzx dhfng jzdqp zvgdp hpvmrm dth bhnfx skzz lktt xxczt kmdrkg lvbpvc xpfhcf brsqck dzgljz lhvv jhxv jqpc ghlzj zszg lbhzxvf fngc fhdx tsnr nmmv brdxmlfl mxrp kghc nzdttq pgblcd jmbpvd qfqskr kmnmh ndmrz dstct vvv xbgz nntlxx rxlps rhzdcb bmvfs xhkdc hqnm zsmmf sbjzc hqj tzsx jlls nt ztc znrzgs bnhhr thzkkk bclml (contains eggs)
crqhxx jsgkn nt jqpc bgx cnxtjz ppcqfhmd lhvv nffxvs dktxc nmbdn xhkdc txdcjdc bfrhb znrzgs brdxmlfl rsrncv lqjfs ncgqfdk ddpc dfdkm pgblcd mgvs pzvddz lfglf ndmrz hpvmrm mhtrd kfkjg rrhg hqnm dhfng sdxhbf sts thzkkk hgxz ntggc zgthq fszjvn zfc scdgmh pvkrf jjrsrf xxczt ghlzj gffvc jmhsl jlls tjrj ggjh nqbnmzx sdvnc tmlz jmbpvd tspqs bclml svfbm phzm fzlffdz jbtf cbsqvgt tsnr nntlxx tzxdf fnll lgkbt (contains fish, dairy)
bfrhb lvbpvc brdxmlfl ssfnt kpkv scdgmh lktt vmsksq gsn fthkdz qfqskr jxrnq fzlffdz nmbdn xppbd jbtf ppcqfhmd rbpxvk dstct nmmv jptf znrzgs tspqs pnddb ntggc nt fhdx dgsbm tzsx rkvq nqbnmzx rxlps ghlzj dhfng xpfhcf pgblcd dktxc zbjnr kmdrkg lfpc lhvv vbdgvk lrj phzm (contains soy)
kvljbg kfkjg zmjjbr txdcjdc thzkkk bhmvf ppcqfhmd pgpgvs tjrj kmnmh pvkrf xcnkt cbxp dstct mhtrd dknxl ggjh kmdrkg fngc dfdkm pnddb crbdxfx gsn nqbnmzx fbmjp hqj ztd rsrncv mfqqh hqnm rpbv kpkv vmsksq zvgdp ddpc pmlpk snxzjb ghlzj ckspdd nffxvs hrcfc xhkdc fszjvn bfrhb xxczt cbsqvgt dhfng nmmv xdhc pgblcd jhxv lqjfs tzsx hgxz bgmh dhphkz znrzgs bnhhr rxlps (contains wheat, peanuts)
rmqvb dstct ghlzj cczqczv pgrc ckspdd phzm hqj vsn dth jptf ncgqfdk tmlz dxclx zlgfs nqbnmzx pcqd vpj jjhl ztd mfqqh pkzs xppbd xxczt rrhg bhnfx vbdgvk bmvfs lfglf qqtpvf dknxl pvkrf jqpc shjxf hrcfc pnddb ntggc vgqftvk pgblcd zgthq lfpc dfhtlrg qnhck xhkdc txdcjdc dhfng jmhsl jsgkn lgkbt bgmh sdvnc rsrncv kvljbg pmlpk rpbv nntlxx ggjh (contains sesame, eggs)
rsrncv xhkdc tspqs pcqd zgthq rrhg nmbdn fcdf skzz kpkv pkzs dxclx pgpgvs dktxc hrcfc ndmrz tzsx xcnkt brsqck zvgdp jlgr hqj nt xgfgx bjp rxlps tsnr tfvcrd svfbm znrzgs jmbpvd fngc pgblcd xdhc zsmmf jdvxzv lqjfs kdvq bvnbp nqbnmzx cbsqvgt dhfng ghlzj qchmh mfqqh kjzb vcvcrxx dstct ddpc crbdxfx tzxdf kmtmlx lgkbt dgsbm (contains dairy)
dknxl xhkdc ttvvp dth kpkv dxclx pgblcd xpfhcf lqjfs nmbdn kmnmh nntlxx hpvmrm fzlffdz bgmh kmtmlx rxlps lljxf dnxdd gffvc pvkrf pmlpk dktxc mhtrd kpd pcqd vhbqgc jsgkn zsmmf gdmj tzsx kdvq ssfnt vjdvrf fvz phzm bclml fngc bfrhb ksvfdjt txdcjdc fszjvn xgfgx ghlzj vcvcrxx hqnm skhp tfvcrd jbtf zlgfs rpbv dzgljz rsrncv nmmv pgrc ppcqfhmd qlf mrfqdkt zbjnr nqbnmzx fsmz zfc lktt sbjzc fbmjp ntggc znrzgs jzdqp kdkm xjd tzxdf crqhxx sdvnc tmlz xbgz jjrsrf lhvv dhfng jhxv dhphkz xxczt qnhck xcnkt ztd lmfrl dqjjt vgqftvk (contains eggs, wheat, shellfish)
brsqck ssfnt pcqd mhtrd ppcqfhmd fbmjp bbfxk gffvc pkzs shjxf lvbpvc nqbnmzx jxrnq dhfng jhxv jdvxzv mgvs rpbv ghlzj txdcjdc vhbqgc qchmh pgblcd sdvnc dgsbm bvnbp zvgdp lhsl dqjjt vpj zlgfs bnhhr zszg hqj kpkv nntlxx xppbd kdvq sdxhbf tspqs tmlz xhkdc pmlpk ztd znrzgs rsxpjt blx fsmz kmdrkg lljxf thzkkk rhzdcb skzz rxlps ntggc nffxvs lfglf rbpxvk hpvmrm kjzb nzdttq qqtpvf (contains soy, wheat, fish)
lgkbt ggjh vtcs skzz lfpc pvkrf skhp dzgljz rbpxvk ghlzj txdcjdc xhkdc ckspdd bgmh qnhck zmjjbr fgxdq gsn dgsbm fzlffdz dth mrfqdkt xcnkt rrhg dxclx pmlpk nt nqbnmzx dfhtlrg kjzb rhzdcb cbsqvgt bvnbp vhbqgc ttvvp nmmv qlf zbblv vcvcrxx ppcqfhmd ckxdjf jzdqp lljxf pkzs xpfhcf rcznlx kdvq znrzgs nnqnj pzvddz rpbv dhfng qqtpvf vvv phzm kvljbg jptf fsmz pgblcd kmdrkg xbgz zgthq fszjvn bgx kmtmlx ssfnt pnddb mhtrd tzsx snxzjb pgpgvs tzxdf crbdxfx dstct (contains dairy)
nnqnj lhsl sbjzc nqbnmzx gsn xjd jjrsrf bhnfx ztd bgmh fsmz dstct dgsbm crbdxfx tmsllr lmfrl kpkv skzz mhtrd dfdkm fbmjp nmmv ckxdjf bbfxk bfrhb jmhsl zsmmf xhkdc lfpc jmbpvd bvnbp lrj zlgfs lktt fgxdq znrzgs snxzjb sdxhbf xppbd vpj nmbdn tzxdf dknxl hqj zjkc rhzdcb pgblcd brsqck lvbpvc ckspdd gdmj xbgz vgqftvk ntggc zbjnr brdxmlfl cbsqvgt ddpc fnll vsn kdvq bhmvf kpd ghlzj jqpc kvljbg xgfgx (contains soy)
gsn dstct vvv txdjzsk dhphkz xbgz qnhck tspqs ttvvp lhsl fzlffdz zmjjbr bclml dhfng bqlk kpd pgrc blx znrzgs qqtpvf nqbnmzx zsmmf rmqvb jdvxzv dfhtlrg nmmv lljxf cnxtjz bvnbp sdxhbf mrfqdkt lrj tfvcrd rxlps vmsksq zfc phzm xhkdc ghlzj xjd dzgljz xdhc tmlz dnxdd hgxz jsgkn ztc tjrj fcdf ntggc jhxv thzkkk jjrsrf fnll vbdgvk bgx jlgr ckxdjf vjdvrf vsn zjkc cbxp stndbt (contains peanuts, wheat)
zsmmf vgqftvk stndbt pgrc nntlxx rsrncv fzlffdz vhbqgc bmvfs brdxmlfl tmsllr nmmv nmbdn rhzdcb fgxdq ntggc nzdttq thzkkk pgblcd dnxdd xdhc xxczt sts jjrsrf bqlk nffxvs bnd ckspdd bclml phzm ghlzj sdvnc qctchfv vsn jzdqp cbsqvgt dhfng cczqczv mhtrd mrfqdkt bfrhb dstct dth zfc nqbnmzx jhxv vvv znrzgs bhnfx nfh dktxc vpj xpfhcf fbmjp pgpgvs zgthq (contains wheat)
ghlzj xbgz jdvxzv fthkdz cbxp pgblcd hpvmrm tzsx lqjfs gsn ppcqfhmd shjxf bvnbp vbdgvk zgthq bhnfx lvbpvc dknxl nqbnmzx dstct xhkdc rsrncv zsmmf dxclx znrzgs dfdkm jqpc thzkkk hgxz vpj ntggc hqj sts vvv nmmv tmlz txdjzsk mfqqh lmfrl snxzjb skhp (contains fish)
rkvq jhxv pnddb ncgqfdk lfpc kmdrkg dfhtlrg snxzjb lhvv nqbnmzx lqjfs lljxf kghc znrzgs qlf hqj gsn mxrp jbtf bnhhr dstct pkzs pzvddz xxczt vtcs scdgmh vbdgvk kjzb ckxdjf qnhck tfvcrd nt jsgkn vpj rmqvb ntggc nnqnj mgvs zvgdp sts zjkc fhdx dhfng kpd hrcfc ztc dnxdd pmlpk lfglf rsrncv zgthq ksvfdjt jzdqp xhkdc bbfxk bclml zszg kmtmlx qchmh ggjh kvljbg dzgljz jdvxzv dth rpbv ppcqfhmd cnxtjz hpvmrm bgx pgblcd thzkkk crbdxfx xdhc ddpc jjrsrf vjdvrf jptf xcnkt dhphkz dknxl mrfqdkt dxclx jxrnq fvz vcvcrxx fcdf kdvq (contains dairy, shellfish)
kmtmlx cnxtjz dktxc jzdqp jxrnq jmbpvd mrfqdkt lrj vpj lhvv rsxpjt txdcjdc pgblcd fzlffdz lktt kfkjg lfglf rpbv lbhzxvf dhphkz xpfhcf zlgfs tmsllr bhnfx gffvc bbfxk jhxv lljxf zmjjbr dqjjt jsgkn zbblv nqbnmzx jmhsl jdvxzv hqj dqcg zszg lqjfs blx bjp vmsksq rsrncv kjzb ckspdd sts xxczt ndmrz xhkdc fnll ddpc sdvnc dstct pcqd nt gdmj fgxdq jjhl pgpgvs xbgz jbtf lmfrl pkzs svfbm rcznlx ntggc dhfng tzsx mfqqh dfdkm thzkkk ssfnt dgsbm kpkv rhzdcb snxzjb znrzgs fszjvn qchmh fcdf scdgmh dknxl tsnr skhp fbmjp (contains fish, soy, dairy)
xhkdc kvljbg pkzs fnll kjzb ckxdjf snxzjb kdkm ghlzj hpvmrm vmsksq lvbpvc lfpc qqtpvf bhmvf nmbdn zbblv dqjjt skzz nqbnmzx nt vhbqgc tspqs lktt kfkjg ckspdd dnxdd ntggc ttvvp lqjfs dstct dfdkm bclml thzkkk fhdx fcdf ndmrz rrhg vcvcrxx jsgkn cnxtjz qfqskr dhfng dktxc bbfxk bnhhr nffxvs tzxdf vpj pnddb phzm jlgr bnd mhtrd znrzgs (contains dairy, peanuts, fish)
tspqs ghlzj dzgljz xpfhcf rmqvb tsnr fszjvn jlgr kjzb ddpc jbtf rsxpjt lhvv zvgdp tfvcrd qqtpvf snxzjb mxrp pmlpk znrzgs cbxp xhkdc lktt ntggc vpj kfkjg lljxf vjdvrf vsn fvz jdvxzv tzsx lgkbt rpbv dhfng nnqnj pnddb qlf ggjh sbjzc nfh ssfnt mrfqdkt skhp dhphkz jlls zbblv dktxc dknxl cd dstct ppcqfhmd bqlk bvnbp zgthq pgrc svfbm kdkm nqbnmzx (contains shellfish, dairy)
xjd ndmrz vhbqgc blx dstct ghlzj ggjh zvgdp kpkv pzvddz hgxz tzxdf znrzgs pkzs tmlz rpbv dfhtlrg kvljbg bnhhr stndbt jmhsl cczqczv pgrc crbdxfx nfh ckxdjf bfrhb skhp rmqvb pgblcd cbxp xhkdc zsmmf jjrsrf lfpc lqjfs nzdttq brsqck jjhl jsgkn brdxmlfl dzgljz fzlffdz zjkc ssfnt jdvxzv fgxdq qnhck xbgz mfqqh bnd hqnm tzsx dhfng hqj mxrp vgqftvk vsn xpfhcf jzdqp dqcg jptf hrcfc dgsbm bgmh dhphkz hpvmrm fszjvn bgx scdgmh jlgr tlsd qlf lljxf ntggc cnxtjz kfkjg lhsl vpj ddpc bclml (contains wheat, dairy)
cd kvljbg ndmrz qlf rsxpjt bgmh rpbv lljxf bhnfx dth mgvs xhkdc pnddb ghlzj xppbd jdvxzv ddpc qfqskr nmbdn crqhxx bmvfs dhfng xjd lhvv lrj dstct kghc kpkv pcqd znrzgs fnll tspqs bfrhb xbgz hpvmrm nqbnmzx zszg hrcfc gsn tmsllr tfvcrd phzm dknxl zmjjbr brdxmlfl pzvddz jmhsl rbpxvk xpfhcf lfpc xgfgx lbhzxvf pgblcd vgqftvk fbmjp bqlk lgkbt tlsd sdxhbf sts (contains shellfish, peanuts)
zmjjbr xbgz cd zgthq qlf rpbv fcdf hqj lljxf ckxdjf crbdxfx jmhsl bclml dth dqcg bfrhb dqjjt ntggc tmsllr skhp lvbpvc snxzjb rbpxvk tzxdf nnqnj ksvfdjt ckspdd tfvcrd jqpc bgx dstct gffvc fthkdz hpvmrm hrcfc jzdqp lktt zsmmf cczqczv pvkrf kvljbg nt stndbt jmbpvd jdvxzv jlgr bhmvf mfqqh qchmh fnll blx hgxz bjp rrhg lqjfs nqbnmzx ghlzj sts vmsksq znrzgs kpd dgsbm pgblcd pnddb dhfng gdmj lfglf tsnr ggjh fbmjp xdhc lmfrl rmqvb dxclx qfqskr vtcs crqhxx vvv zlgfs lrj (contains sesame, wheat)
sts fsmz vpj znrzgs jzdqp fszjvn fngc zszg mrfqdkt ncgqfdk nqbnmzx kdkm qnhck ntggc vmsksq jqpc pcqd fbmjp kfkjg bclml jsgkn dth qfqskr tsnr nntlxx jptf kghc kmdrkg ghlzj cbsqvgt fvz fnll hrcfc dktxc jmhsl xhkdc bmvfs sdvnc dhfng dknxl ddpc vvv kdvq vsn ttvvp bhmvf txdjzsk lljxf zlgfs tzsx rxlps vhbqgc stndbt bgx cbxp jmbpvd bnhhr tlsd phzm cd rcznlx crqhxx ksvfdjt zvgdp zfc dhphkz gdmj lhvv lrj rrhg cczqczv zbjnr xppbd dstct rbpxvk snxzjb scdgmh zbblv (contains wheat, fish, soy)
bmvfs kghc hrcfc bhnfx kmtmlx zfc xgfgx nqbnmzx cbsqvgt lbhzxvf tzxdf ssfnt svfbm rmqvb bbfxk hqnm hpvmrm vvv qlf fsmz tmsllr cbxp gffvc dxclx lrj lmfrl dstct crbdxfx hgxz rhzdcb bgmh kdkm kpd tfvcrd cczqczv vgqftvk pgblcd kdvq sts bnd cd qchmh jjhl lqjfs dhfng vbdgvk nt zgthq xhkdc jjrsrf ghlzj pgpgvs bqlk zszg pzvddz sdxhbf lljxf fnll jmhsl zmjjbr lvbpvc crqhxx pkzs znrzgs jmbpvd jhxv kjzb snxzjb tzsx pnddb (contains peanuts)

53
aoc2020/input/day22.in Normal file
View File

@ -0,0 +1,53 @@
Player 1:
41
48
12
6
1
25
47
43
4
35
10
13
23
39
22
28
44
42
32
31
24
50
34
29
14
Player 2:
36
49
11
16
20
17
26
30
18
5
2
38
7
27
21
9
19
15
8
45
37
40
33
46
3

1
aoc2020/input/day23.in Normal file
View File

@ -0,0 +1 @@
942387615

358
aoc2020/input/day24.in Normal file
View File

@ -0,0 +1,358 @@
seseswnwseneweseswseswnwnese
neneeneseneeeesenewwne
swswswneswsewswseswesewswseswneeswswnwsw
eneeswnwneneenwneneneeneneswnwneswne
seeseseeeeseenenenwswseweese
seswweseseseswseswneswwnwswswseneswnw
wswseswswneeswswsw
wnewnwnewwwwwwwwwsewwsw
wseswnenwneswwnwseeenwnwnwewesewse
seweseseneeeseeswsenwseeenwseeeew
seswswnwswswswnesesesewseeneseswsesesesw
wsenewsenwwnewswwewnwnwsewwwsw
swwwnewnwwseswswnwswenwswseeswesw
senenwswwnwnewwseseseswswwweneswwne
nwseseeeesweee
swwswswswwswswsweswnwwswsw
sewnwswneneneenenewneeneeneneswwee
swenenwswnwnenwnwnwenwnenesenwnenwnwnwwnw
eweeneswnesenesewneneeeneseneneew
enesesenwsweeeeeenwnwnwsweswew
nweeeswneswenwseswnweeeneenenesw
neeeswnwnenwnewnwnwswenwwwnwsesenw
neswnwenwneswnwnwnwneswnesenwnw
neeseeweneeswweeswneneneeneenenw
nenwnenwnenwewnewsenwnwnwnwnene
nwewnwnwwnenwnwwnwnwwnwwenwnwsenw
seseswsewneswseseseseseswwseseswe
eseswnewenwwnenene
wswneneswswsewnwseswswswseswswwwswswne
neeswneneewnenenenenwnewneeeneneswse
eneeneneneneeeneneenewsene
eneweewwsenesene
nwenwenwnwswnenwsenwnesenenenenwnesw
wesenesenewweewwwswwnwsew
eeswneeewsewneneneweneeneene
eeswswswnwweswnenwsw
swesewnwneswseesesesesesenwsenwesee
enwsenwnwswnwwnwseseseseeswewnesenw
eeseeeseenwseenweeeenwesese
nenwnwswneneswneenenwneneswnenwnwnwnenee
ewswwswwswewwnwwenww
swnenenwnenenenesenenesewnenwnenwesenesw
nwseeenwnwwnwnwenwswnwswnwnwneenwnew
ewwnwwwwnwswnwnenwsenwnwewnwww
eswwwseewsewweeswwnwnwwenwwwne
wswseswswswnenwswwswswnewswswse
nwnenwseseswsesesenwseseseweswew
swesweenenwnwnenwnenwwneneseenenwsw
wswwwswneswwwswwewnenwswwwew
wsewwwnwwwwnwsenenewnwewwsw
wswswwesweswnwswwwswswsweswswswsw
eswswwnwwswsesweswswswneswswnwnwsesw
neenwsewwswneseswwseswnwwwwswww
enwseweseseseeswseneneseswseswneee
swnwswswneseswswswsesewseseneneseswsee
wsenwwswwwnwswwwwneswewwneww
nweswsweeewnenesee
swsweswnwswseneswswswseswswswsw
swsewseswseeseneeswswwswswnenenwnesesw
seeeenenewenenenenesew
nwnesewsesesenwsesenwsenwnwnenwnenwnww
enwswsewnesesesenwe
nwnwnesenwwwwnwnw
nenesenewneenenenenwswneenesenenwnewne
wnwnesenenwesewsenenenenwneeeneswse
wwswswswswswswwswwswesww
enwsesesewseeesweneeeswesesweenw
wwnwseneneneeenewswnwnwneswsenewnwsenw
swswswswswswewswswwswsww
nenwwnenwsenwnwswseswnwneneseseesenww
seeseeseeeesenewseswweseseswnenese
wwsewwwewneeswnwwwewwwenesw
wenewseeeneneenenenenenwswswnenwnee
neswnwnwesesenwswewneewsenwesweswswse
nesweewswsewswnesewnewswwwwwsw
nwneeeneseneneeneswenenwswnewsenwe
swswswswnwswwswswesweeesenwswwswse
senenwewnenenenenwnwneneswneenenenewne
senwseneesweeesenenwseseseneewwe
ewwwwwnesenesenwnwsewsesenenewswnw
sewswswswseneswseseswseswneswswse
eenwneneeeeeewswneseneeew
swwwwseswswnweswwnwenenweenwseeene
eeneeeeswnwneseenwesweeenweee
enwwwwnwnwwwnwnwneseswswnwnwnwwenwnw
wwwswswswswwswewswsw
swwwwnesewswewwswneswseenw
seeneeeeeweeeseee
swneswwnwsenweswnweswswnwseeseseseswnw
swswseswnwswswsweseswnwswswswneswsesew
neneswswwwwwswwnwswswwswsesweswsesw
sweneswnesenenwnenwesenewnwnewnwwene
nwnwnenenwwnesweeswnwswseseneseewnw
nenwnenenwneneneswneneenenwswnenw
nwseswseswwwswnwneswswwswwwwswnese
esenwenwnwwnewnwnwneswnwnwwnwnwnwnw
wwwswsenwwswwwwwwnwnwwsewwe
wesenweneeeseswseeneswswnenwwesw
swswnwseseswsenwnenwnwseewweswswseene
swswnewswswneswswswsenwweswwswswswsww
eswwnenwnwneewenweswswnewweswese
seneenwsewwnwnee
swswswswsenwsweswswswenwswsenwswsesesw
nwnweenwnwnenwnwneswswnwnwsenwnwnwnwnwne
wnwwnwwwwwwsew
nwswnwnwnenenwnwnwswnwseneswnwnwnwne
newwneeeswseneeneneneneweeeenene
eeenwnwneeeeeeesweenwswwseew
esenewwwwnwswswswswwwnwswswswww
eeweeeseseeesee
wewwnenewswwneseswwnwwwseswswww
wweenenewswswnwwewwswwwswswsww
seseeswneesewnwsenwsesesesenwwswnwsee
nwnwnenwnenwnwnwsesenwnwnwwnwnenenwnwse
eswswseseswwswseseswswnweseswenwsesw
eeseneneeesenenwswwweewneenene
swsenwwswnwnwnwswnwenweneswneeneswnw
nenwenenewseneweewswneenesweene
swwwwwwwnwswew
seesenwesesesewnwsenweseseswseswsee
nenenwnwnenewnwnwnenwseswnwnwnwnenwseswse
neneeeenwwweseseswewseesenwswnw
enewesenenesenwwsesweneeneeneenenee
seeeeeneewseewseseeeeesesewnw
wwswswswswwwnwwewswsw
wswnwnenweswnwnwnwnwnwnwsenwewse
nwnwnwnwswnenenwenwenwnwneseswnwnwnenwne
ewswswswwnwswswwswnwswswswswwwsesenwne
wnwsenesenwsenwesewewseswnwnenwneswne
nesweenenwneeneseeeneneseenewneenw
nwswswswesenwsenwesweseswsewswesenwsw
sweswneneeneswnwesenwwnwseeseswwnw
enwnwnwnwnenwnwnwnenwwnwesewnwnwsenwnw
eneseweeeneneneswwseneswweswswsw
swswwwseneeseeewnwwseswnwswenwneswnw
senewwswsesenewnwseseswswswneseneswsesw
swnwnwnenwsenwsenwnwsenwnwwnwnwew
seseseseswneesenweseeseswsesenwsewsese
eewweeneneswswenenweneneeeesw
ewneneeeseeeneneesweswenweswene
wseeneseeswnwwesesesenwnwwsesee
sesesesewseseneseseswnesesesenwsesenwse
seseswseneneewseseseseseseesesee
swswsesenwneeseswsesesesesesesew
nenwseswswnesenewwnwenwseeeeneneenene
neswneswswnewnwswnwseneeneneenwenwne
swnwnwnwnwnwseenewnenenwnwnwnweewnwnw
swnwnewnwwnwnwwnewswwsewwnwswnewew
nwnenwswnenwnwnwnenesenwsenenwnenenesenwnw
nenwewseswneweesweseeenweswswnw
swsweswseeswwswswswneswwwnwnwswnwse
swwwswwsewenewsewswswwnewnwswnw
swenenwnweswnwswwswwwnwweswnewnw
nwnenwnwnwnwwenenwnwsenenewenwnwswnesw
neesewswnwswseswnwenenwwswswswswewse
seseseseeeseseseswnw
swswenwswnenwnwnenwnwnwsenenwnwnenenwnwnew
wseseeeseseneseswesesesesese
seswseseseseswneswnwwseseseswesw
nwnwnwnwenweswsesenwswnwnwnwnwnwewswnwne
swneneenenwnenenewneneeweeeeswnese
wwnwnewwwwwswwww
eseeeseeeeenwewseenwesenwwse
seswseswneswseswswswwseswsw
wneswseswswnwswneseswsweswneswwswswsesw
wswwnwnwnwnwnesweswseswseswenwwswew
neeeeswneeswnweeeeeeesweee
neswswnwswesenwsenesenwsewseewswswne
newseesesesenwsenwewsewsese
sewseenwseseseswseseeswseseseneenwse
weseneeeeeesewneseneeswewsew
wswnwnwsewnwnwenwewwnwsesenwnenwnwnw
senenenenenewnenwnwse
seseseseseswsesenesesesesewsenwseneese
swwneewwneswsewseseeneenwsenenese
swnwnwneswseswsweswewneswnewnweseswsw
swswswswseeswswnwseswswnw
nenwseneenwneneenwneneneswseseeneswenw
swneswswwswswseswswswswnweswewswswe
swnenenwneswenenewnwnwnenenenese
nwswswnewseswnwswnwwwesweeswesese
nwenwnwnwnenwnwnesenwnwnwswnwnwsesenese
sweewwnwswesewnenwswww
eweneeswwswneeneeeseesenenwnee
nwnwnwnwsewnwenwnwnweswwwnenwnwee
seswswswwswnwwseneswswswswneswwswnene
newnenenwnesenenesewneswnenwnwnwnenwne
sewnenenenwneeswwenwneswnese
swnwnwwnwnwnenwenenesenewneeswnenene
swnenenesenewneneswsewwwwneesesee
wewneneeneneswwwsenenesene
wenwswswswnwwenwwwwenewnwnwwww
wwewseswwwswswwwnewnewnwnwwwne
swswwswswnwswnwswseswswswnwswswswseeswne
wewswnweneeseseeweeeewwsene
swsewwsenwseswewneswsesee
seseswnwneneseesesesesesesenweewsesese
seseseseswnesesesenwswsesew
swnwseswewseswswswswswse
wwesenwnwnweswswnwneewswnwneewse
nwnwnwnwnwnesesenwnwsenewnwnwnwnwnwnwnw
wswwwnenwswseswewwswswwnwwswswsw
senenenewnenesenenenenenwenweese
swneneeneswenewswnenwnweneesee
neenenewneeewneneswseneseneneneene
swnewswswsenwwswseswnweswswnwsweswsw
ewwnwenwwwsewnwnwnwsesw
seswseswswswseswsesenwsese
neneswnweeeeeneeswwnwswseee
swnenwnenwnwneswenenenwnenenweneneswnee
nenenwnwneneneneswnenenwnwsenwnewesenwwe
wwnwnwnenwwwwewseeswwwnwnwswnwnw
neneeneeeeneneeeeewe
nwneswweswswnesweesenwswswswswsesewse
seewseneseneseseseswswewseeseenwsee
nwswseswswseseswseswseswse
swseewnwseswwwseeswswnesewneneese
nwneeseeeneeeeeeee
wwswenwwnwnwwwsenwwwwwnwsenew
weneneneeneneswne
nenwswneswswwswwwwwswenewwsesewsw
sesesenenwneswwenesenewesweswseeenw
sweewswwnwenwseseseenwsesw
enwneenwewsenwnwwsewwwsww
nwnweseneswneeneneneweswswwneseswnese
nweseswneeseenwnenenesesenwenenenwwe
nwwnwnwsenwnwnwenenwnwnwsenwswnwsenwwnw
wewwwwseswnwsewwwnenwwwwsenesw
seswseswswswswseseswnwswswesw
sweswwnewneneneneneseneneneenwenene
swwnwswswwwewswswenwwse
senwenwnwwnwesesenwwnwnwnenwsenwnwnwne
seseeeweseswwnenwsenesewnweseeese
nwwewwnwnenwswnwsewswwnewenwnwnwnw
eesweesenweewneeeeenwsweene
newswesenwnewswneswswswseswswnwswnesw
sesesewwsesewseseneeswsenesesenesese
nwnwwswnwnenwwnwwnwnwneseswesenwswnwse
wwnesewnwnesesewsewnwwneneswse
eeweneeneweneeseeewneeeene
neneswnenwnenenwnenenwnwnwene
wwwseswswneenewseswseswwswnenesese
nwnwnwnwseswwnwswnwnwsenwnwsenwsenenwnee
newswswwwwseseneswwswswnewswwww
seseseseneseseswswswseseesenesesewswnwse
eeseswweseeenwsenesesesesesewsesee
neenenenenenwnweesenwesenwenesenesee
nwnwnwnenwswnwnwsenwnwnwnenewnwnw
seswnewswswswswnwe
eswnewneeneneneenenenwnenewnwewswse
wnewnenenwnwseneneseswsewenwsesenwwwse
eeseseweneseseewnesewnesesesenw
seeneeeewseeeneewsesweeseee
seseseswswsenwneeswnwswseseseswseswswnese
sewwswswseneswnwwwwswwne
nwnwnwnenwnwnwwnwnweswnwnwswenw
seswnwseseswnwnwseseenenw
newsewswnwwwneswsewneeeseswnwwenenw
neneeswnenenewseesenewe
seswneswsesewseeswse
sesenwnewneneeeneneneenenenesewnenenenw
wwneneswewswswsew
sewwwnwnwnwwsenwnenwsesenww
nwwnwnenenwwnwwswswswewseneesenewwnw
eeswswneneneneeneeeeseeewneee
wsewswwwnenwswnwswwsenenwenenw
nwwnwwwwnwewnewwwsenwswwswenwne
swsenesenwsesesewseswneeseseseseswsenw
wswswswseeswswswswnwswneweseswswswswnw
wnwnwwnwnwwnwnwwnwwswnwwenwwese
swseesenwswnwsenwswsweeweenwneeenene
neswnenewneneneneneneneneswnesenenesew
wnwneenenewnenenesenwne
senwnwseenesewseswwseswsweswsenenwsee
nwnwnwwnwenwsweswwnwseenwwnwnwnwnw
neseneneneswnwswsenewnewneenwsewnenenese
nwseseswwswseesenesenese
swsenwsewwneesewweswnenwneenwwnwse
eswswwswnenewseseswnwseswswnewswswsesw
wewneseeswwwnwneewnwswwswswwsesw
swseeewseswwswswneswswnwswsw
seewswwswwswsenwnwswwswnewswswswsww
seswswswsesesenewswswsenwswswswneswswsw
enwwwwswswwwswsewswnwnwseeswnwwsw
seneseneswseswseseswwwsweseswnwesesese
eswnesweswswswswnwswswswswwwsw
eeeeweeseseneewe
swnenwenwnwnenesewwswnwnwnwnwne
seswneswswwwsewenewwswwswwwww
seswseseswswswswswsenwsesenwneeewseswswse
wwnwnwwwenwwnwnww
seswseeseeseeneesesesewnese
wnwnwwnesewwwswewsesewnwewwe
swnwseswswswnweswneweswswswswswswnesw
swseseseseseswswseswne
nwswwwwnwswnwsesewenewwsesenwnenw
swwnwsweeewnwnwwsweseswsw
nwnwnwnweswnwsenwnwnwnwnwnwnwnww
eswnenwswnwneeneee
enweneeeeeeesenenee
nwwnwweneeseenenenwnwnwwswswnenenw
eeeneseesweeeewenwesweeee
swswnewswwsesenwwswswwwwewneswswnesw
seseseseseseseesesewesesewe
neswwwwwneswwswwwwsewneneww
wsewwwwwwnwnwnwwnwnww
nenwneneneneneseneneenenenewneswnwesene
swnwseseswswswseweswsweswswnwnesewseesw
weswswneswseewwnwnwneseesese
eewwnwnweswww
swwwwwwwswsewwewswnewwneww
senesesesenwnwnwnenewsenwnwnewnw
nwnenwnwnenenwewseenwnwnenwnwwnewnw
wwwweswwseneneseenwseswnwwnwwwnw
nwnwwswnenwnwnwwwseewswnwnenweww
neswnwnewneneeneneneneneneneneseswnesene
eeenwewseeenwsewnwsewe
nwnwwnwwnesenwnwnwnwnwnwsenwnwswnenwnw
nwseswswswnewnenwnwneneenenwwneneeesw
nwnwnwnwwswsenweenwnweenwnwnwswnwnww
nwesweeeeenweeseweeeeewee
swseseswseswswswswnwnwswswsweneswswsese
swesesweeswswswnwwswswswsewse
wswswweseswswswenwswnwswswnwwwwsw
wsesesesenwswswnwseseseeseseesesesese
wsenewwwwwwwwnewsew
ewswwwwswwwwwnwweswww
enwwnwnenwesewne
wswswseswsesesenesesesese
swseseseswseseseswswnewe
swswnwnenenwswneneneneenenenenenwswnenw
eneeseeseenewseeseewe
nwneseswswswswswnwswswswswwneeseswswne
swswsesesesenwseseesenew
newnwsenwsenenwnwnenwnwnwnesenwwnwnw
eneenenewwneneneneneneseneenesene
wnwseweeenwswsewwneswwneenewewe
nwnwnwwwnwwneenwsenenwseswnwswwnwnw
nwnwswneneswnwnwnenwwnweswswwnwnenwnw
neneenweseswseeewneweneenweseee
eeneweseeeeenwsenweneeeeswswe
ewsewswnwwwwnwneewseswneenewswwe
eeweeesweeeneeeeswswseenwnwee
nwnweswswsewwsenesweswwnwnwenwswe
wwewwsesenwswnwwsenwnenwwnwsewwnw
eewsewwnewwwwneswwwswswswww
enwewswesenweenwneewseswseeee
sesenewswwwweneneseeswnwnenwneee
nwewnwsewnwnenwwnewwse
eseeseseeesesesenwseneswneneswesew
wswwseenewswenwwweswswnenww
neseswseseeswswswwswswnwsenwsweseswswse
eeswwenwnenwneeweseweswneswene
nenwnenwnwnwneneswnenenenwneenenwswseswnw
swneeeeseenweneseeweswneesenwenwsw
nwnwnwsenwwnwsenwnwne
newwnwsenwnewsewswnenwswwenenwnesese
senwsenwnesenwnewnenwne

2
aoc2020/input/day25.in Normal file
View File

@ -0,0 +1,2 @@
15335876
15086442