Compare commits
12 commits
3b0619a2ca
...
72e26635ff
Author | SHA1 | Date | |
---|---|---|---|
72e26635ff | |||
d24d9ea337 | |||
653c45bedf | |||
a7a8063922 | |||
2255db3981 | |||
b3b4b38907 | |||
373c5ac468 | |||
f9c75d5ecd | |||
092430af3b | |||
f0babe89b6 | |||
77cb688c2d | |||
530e53c22c |
56 changed files with 6321 additions and 1305 deletions
|
@ -1,13 +1,17 @@
|
||||||
day%.out: out/types.o day%.cpp
|
day%.out: out/types.o misc/main.cpp days/day%.cpp
|
||||||
g++-10 -std=c++2a $(flags) $(@:out=cpp) out/types.o -o $@
|
g++-10 -O3 -std=c++2a $(flags) -Dcurrent_day=$(@:.out=) days/$(@:out=cpp) misc/main.cpp out/types.o -o $@
|
||||||
|
|
||||||
day%.cpp:
|
day%_test.out: out/types.o misc/main_test.cpp days/day%.cpp
|
||||||
cp template.cpp $@
|
g++-10 -O3 -std=c++2a $(flags) -DTEST_BUILD -Dcurrent_day=$(@:_test.out=) days/$(@:_test.out=.cpp) misc/main_test.cpp out/types.o -o $@
|
||||||
|
|
||||||
out/types.o: types.hpp types.cpp
|
days/day%.cpp:
|
||||||
|
cp 'misc/day.cpp.template' $@
|
||||||
|
sed -i -e "s/current_day/$(shell basename $@ | cut -f 1 -d '.')/g" $@
|
||||||
|
|
||||||
|
out/types.o: misc/types.hpp misc/types.cpp
|
||||||
mkdir -p out/
|
mkdir -p out/
|
||||||
g++-10 -std=c++2a $(flags) -c types.cpp -o $@
|
g++-10 -std=c++2a $(flags) -c misc/types.cpp -o $@
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm out/* day*.out day*.output
|
rm -f out/* day*.out day*.output
|
||||||
|
|
200
2020/day1.input
200
2020/day1.input
|
@ -1,200 +0,0 @@
|
||||||
1587
|
|
||||||
1407
|
|
||||||
1717
|
|
||||||
1596
|
|
||||||
1566
|
|
||||||
1752
|
|
||||||
1925
|
|
||||||
1847
|
|
||||||
1716
|
|
||||||
1726
|
|
||||||
1611
|
|
||||||
1628
|
|
||||||
1853
|
|
||||||
1864
|
|
||||||
1831
|
|
||||||
1942
|
|
||||||
1634
|
|
||||||
1964
|
|
||||||
1603
|
|
||||||
1676
|
|
||||||
1256
|
|
||||||
1906
|
|
||||||
1655
|
|
||||||
1790
|
|
||||||
1666
|
|
||||||
1470
|
|
||||||
1540
|
|
||||||
1544
|
|
||||||
1100
|
|
||||||
1447
|
|
||||||
1384
|
|
||||||
1464
|
|
||||||
1651
|
|
||||||
1572
|
|
||||||
907
|
|
||||||
1653
|
|
||||||
1265
|
|
||||||
1510
|
|
||||||
1639
|
|
||||||
1818
|
|
||||||
376
|
|
||||||
1378
|
|
||||||
1132
|
|
||||||
1750
|
|
||||||
1491
|
|
||||||
1788
|
|
||||||
1882
|
|
||||||
1779
|
|
||||||
1640
|
|
||||||
1586
|
|
||||||
1525
|
|
||||||
1458
|
|
||||||
1994
|
|
||||||
1782
|
|
||||||
1412
|
|
||||||
1033
|
|
||||||
1416
|
|
||||||
1813
|
|
||||||
1520
|
|
||||||
1968
|
|
||||||
715
|
|
||||||
1396
|
|
||||||
1745
|
|
||||||
1506
|
|
||||||
1024
|
|
||||||
1798
|
|
||||||
1870
|
|
||||||
1615
|
|
||||||
1957
|
|
||||||
1718
|
|
||||||
1349
|
|
||||||
1983
|
|
||||||
1387
|
|
||||||
1738
|
|
||||||
1588
|
|
||||||
1321
|
|
||||||
1160
|
|
||||||
1907
|
|
||||||
1861
|
|
||||||
1940
|
|
||||||
1475
|
|
||||||
2004
|
|
||||||
1852
|
|
||||||
1760
|
|
||||||
1608
|
|
||||||
1028
|
|
||||||
1820
|
|
||||||
1495
|
|
||||||
1811
|
|
||||||
1737
|
|
||||||
1417
|
|
||||||
1316
|
|
||||||
1087
|
|
||||||
1803
|
|
||||||
1595
|
|
||||||
1346
|
|
||||||
1971
|
|
||||||
1692
|
|
||||||
1678
|
|
||||||
1330
|
|
||||||
1480
|
|
||||||
1097
|
|
||||||
1898
|
|
||||||
1973
|
|
||||||
1567
|
|
||||||
1733
|
|
||||||
1336
|
|
||||||
1381
|
|
||||||
1327
|
|
||||||
1670
|
|
||||||
1436
|
|
||||||
1989
|
|
||||||
1334
|
|
||||||
89
|
|
||||||
1862
|
|
||||||
1715
|
|
||||||
1743
|
|
||||||
1967
|
|
||||||
1765
|
|
||||||
1402
|
|
||||||
1729
|
|
||||||
1749
|
|
||||||
1671
|
|
||||||
1196
|
|
||||||
1650
|
|
||||||
1089
|
|
||||||
1814
|
|
||||||
1783
|
|
||||||
1225
|
|
||||||
1823
|
|
||||||
1746
|
|
||||||
2009
|
|
||||||
1886
|
|
||||||
1748
|
|
||||||
1481
|
|
||||||
1739
|
|
||||||
1912
|
|
||||||
1663
|
|
||||||
1668
|
|
||||||
1314
|
|
||||||
1594
|
|
||||||
705
|
|
||||||
1449
|
|
||||||
1731
|
|
||||||
1487
|
|
||||||
1648
|
|
||||||
1466
|
|
||||||
1317
|
|
||||||
1979
|
|
||||||
1799
|
|
||||||
1926
|
|
||||||
1703
|
|
||||||
1656
|
|
||||||
1978
|
|
||||||
2005
|
|
||||||
1865
|
|
||||||
1982
|
|
||||||
1951
|
|
||||||
1892
|
|
||||||
1713
|
|
||||||
1744
|
|
||||||
1598
|
|
||||||
1606
|
|
||||||
1583
|
|
||||||
1895
|
|
||||||
1804
|
|
||||||
1430
|
|
||||||
1816
|
|
||||||
1364
|
|
||||||
1575
|
|
||||||
1918
|
|
||||||
1431
|
|
||||||
1812
|
|
||||||
1471
|
|
||||||
1797
|
|
||||||
928
|
|
||||||
1934
|
|
||||||
1156
|
|
||||||
94
|
|
||||||
1563
|
|
||||||
1909
|
|
||||||
1453
|
|
||||||
1392
|
|
||||||
1427
|
|
||||||
1819
|
|
||||||
1524
|
|
||||||
1695
|
|
||||||
1866
|
|
||||||
2008
|
|
||||||
1413
|
|
||||||
1698
|
|
||||||
1051
|
|
||||||
1707
|
|
||||||
1904
|
|
||||||
1681
|
|
||||||
1541
|
|
||||||
1621
|
|
||||||
1421
|
|
||||||
1809
|
|
||||||
1576
|
|
1000
2020/day2.input
1000
2020/day2.input
File diff suppressed because it is too large
Load diff
|
@ -30,7 +30,8 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
// Find 2 numbers that sum to 2020
|
// Find 2 numbers that sum to 2020
|
||||||
auto find_2020_x2(const std::vector<i32> & list) -> void {
|
auto find_2020_x2(const std::vector<i32> & list) -> void {
|
||||||
|
@ -44,7 +45,7 @@ auto find_2020_x2(const std::vector<i32> & list) -> void {
|
||||||
--end;
|
--end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout << (list[begin] * list[end]) << std::endl;
|
print((list[begin] * list[end]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find 3 numbers that sum to 2020
|
// Find 3 numbers that sum to 2020
|
||||||
|
@ -53,13 +54,13 @@ auto find_2020_x3(const std::vector<i32> & list) -> void {
|
||||||
for (auto n1 = 1; n1 < list.size() - 1; ++n1) {
|
for (auto n1 = 1; n1 < list.size() - 1; ++n1) {
|
||||||
auto low = n0 + 1;
|
auto low = n0 + 1;
|
||||||
auto high = n1;
|
auto high = n1;
|
||||||
|
while (low < high) {
|
||||||
auto n2 = (low + high) / 2;
|
auto n2 = (low + high) / 2;
|
||||||
while (low < high - 1) {
|
|
||||||
auto sum = 0;
|
auto sum = 0;
|
||||||
if ((sum = list[n0] + list[n1] + list[n2]) == 2020) {
|
if ((sum = list[n0] + list[n1] + list[n2]) == 2020) {
|
||||||
std::cout << (list[n0] * list[n1] * list[n2]) << std::endl;
|
print((list[n0] * list[n1] * list[n2]));
|
||||||
return;
|
return;
|
||||||
} else if (sum > 2020) {
|
} else if (sum < 2020) {
|
||||||
low = n2 + 1;
|
low = n2 + 1;
|
||||||
} else {
|
} else {
|
||||||
high = n2;
|
high = n2;
|
||||||
|
@ -69,11 +70,11 @@ auto find_2020_x3(const std::vector<i32> & list) -> void {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day1() -> void {
|
||||||
auto list = std::vector<i32>();
|
auto list = std::vector<i32>();
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day1.input");
|
auto file = std::ifstream("inputs/day1.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
list.push_back(std::stoi(line));
|
list.push_back(std::stoi(line));
|
||||||
}
|
}
|
||||||
|
@ -82,6 +83,4 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
|
|
||||||
find_2020_x2(list);
|
find_2020_x2(list);
|
||||||
find_2020_x3(list);
|
find_2020_x3(list);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -29,7 +29,8 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
struct Pair {
|
struct Pair {
|
||||||
u64 jolt;
|
u64 jolt;
|
||||||
|
@ -40,11 +41,11 @@ auto operator<(const Pair & left, const Pair & right) -> bool {
|
||||||
return left.jolt < right.jolt;
|
return left.jolt < right.jolt;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day10() -> void {
|
||||||
auto jolts = std::vector<Pair>{{ 0, 1 }};
|
auto jolts = std::vector<Pair>{{ 0, 1 }};
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day10.input");
|
auto file = std::ifstream("inputs/day10.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
jolts.push_back({ (u64) std::stoll(line), 0 });
|
jolts.push_back({ (u64) std::stoll(line), 0 });
|
||||||
}
|
}
|
||||||
|
@ -59,7 +60,7 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
else if (jolts[i + 1].jolt - jolts[i].jolt == 3) ++dif3;
|
else if (jolts[i + 1].jolt - jolts[i].jolt == 3) ++dif3;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << (dif1 * dif3) << std::endl;
|
print((dif1 * dif3));
|
||||||
|
|
||||||
for (auto i = i32(0); i < jolts.size() - 1; ++i) {
|
for (auto i = i32(0); i < jolts.size() - 1; ++i) {
|
||||||
for (auto j = i + 1; j < jolts.size(); ++j) {
|
for (auto j = i + 1; j < jolts.size(); ++j) {
|
||||||
|
@ -70,7 +71,5 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout << jolts[jolts.size() - 1].count << std::endl;
|
print(jolts[jolts.size() - 1].count);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -30,7 +30,8 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
template <typename Lambda>
|
template <typename Lambda>
|
||||||
auto iterate_seats(const auto & seats, Lambda callback) {
|
auto iterate_seats(const auto & seats, Lambda callback) {
|
||||||
|
@ -62,12 +63,12 @@ auto count_seats(const auto & seats) -> usize {
|
||||||
return occupied;
|
return occupied;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day11() -> void {
|
||||||
auto bit = u8(0b1);
|
auto bit = u8(0b1);
|
||||||
auto seats = std::array<std::vector<std::string>, 2>();
|
auto seats = std::array<std::vector<std::string>, 2>();
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day11.input");
|
auto file = std::ifstream("inputs/day11.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
seats[bit].push_back(line);
|
seats[bit].push_back(line);
|
||||||
}
|
}
|
||||||
|
@ -94,7 +95,7 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
}
|
}
|
||||||
while (!seats_equal(seats));
|
while (!seats_equal(seats));
|
||||||
|
|
||||||
std::cout << count_seats(seats[0]) << std::endl;
|
print(count_seats(seats[0]));
|
||||||
|
|
||||||
iterate_seats(seats[0], [&seats](i32 i, i32 j) {
|
iterate_seats(seats[0], [&seats](i32 i, i32 j) {
|
||||||
seats[0][i][j] = seats[1][i][j] = 'L';
|
seats[0][i][j] = seats[1][i][j] = 'L';
|
||||||
|
@ -129,7 +130,5 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
});
|
});
|
||||||
} while (!seats_equal(seats));
|
} while (!seats_equal(seats));
|
||||||
|
|
||||||
std::cout << count_seats(seats[0]) << std::endl;
|
print(count_seats(seats[0]));
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
104
2020/days/day12.cpp
Normal file
104
2020/days/day12.cpp
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
struct Instruction{ char op; i32 num; };
|
||||||
|
|
||||||
|
auto day12() -> void {
|
||||||
|
auto instructions = std::vector<Instruction>();
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day12.input");
|
||||||
|
while (getline(file, line)) {
|
||||||
|
instructions.push_back({ line[0], std::stoi(line.substr(1, line.size() - 1)) });
|
||||||
|
if (line[0] == 'L' || line[0] == 'R') {
|
||||||
|
instructions[instructions.size() - 1].num /= 90;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto ship_x = i32(0);
|
||||||
|
auto ship_y = i32(0);
|
||||||
|
auto direction = i32(2);
|
||||||
|
for (const auto & instruction : instructions) {
|
||||||
|
switch (instruction.op) {
|
||||||
|
case 'N': ship_y += instruction.num; break;
|
||||||
|
case 'E': ship_x += instruction.num; break;
|
||||||
|
case 'S': ship_y -= instruction.num; break;
|
||||||
|
case 'W': ship_x -= instruction.num; break;
|
||||||
|
case 'R': direction = (direction - instruction.num + 4) % 4; break;
|
||||||
|
case 'L': direction = (direction + instruction.num ) % 4; break;
|
||||||
|
case 'F':
|
||||||
|
ship_x += ((direction - 1) % 2) * instruction.num;
|
||||||
|
ship_y += ((direction - 2) % 2) * instruction.num;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print((std::abs(ship_x) + std::abs(ship_y)));
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto ship_x = i32(0);
|
||||||
|
auto ship_y = i32(0);
|
||||||
|
auto waypoint_x = i32(10);
|
||||||
|
auto waypoint_y = i32( 1);
|
||||||
|
for (const auto & instruction : instructions) {
|
||||||
|
switch (instruction.op) {
|
||||||
|
case 'N': waypoint_y += instruction.num; break;
|
||||||
|
case 'E': waypoint_x += instruction.num; break;
|
||||||
|
case 'S': waypoint_y -= instruction.num; break;
|
||||||
|
case 'W': waypoint_x -= instruction.num; break;
|
||||||
|
case 'R':
|
||||||
|
for (auto i = i32(0); i < instruction.num; ++i) {
|
||||||
|
auto copy = waypoint_x;
|
||||||
|
waypoint_x = waypoint_y;
|
||||||
|
waypoint_y = -copy;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'L':
|
||||||
|
for (auto i = i32(0); i < instruction.num; ++i) {
|
||||||
|
auto copy = waypoint_x;
|
||||||
|
waypoint_x = -waypoint_y;
|
||||||
|
waypoint_y = copy;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'F':
|
||||||
|
ship_x += waypoint_x * instruction.num;
|
||||||
|
ship_y += waypoint_y * instruction.num;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print((std::abs(ship_x) + std::abs(ship_y)));
|
||||||
|
}
|
||||||
|
}
|
103
2020/days/day13.cpp
Normal file
103
2020/days/day13.cpp
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
struct Pair{ i64 id; usize index; };
|
||||||
|
|
||||||
|
// f = a + n0 * b = c + n1 * d
|
||||||
|
// f = req_base + n0 * req_loop = new_base + n1 * new_loop
|
||||||
|
// Solve for the smallest integer value f such that this holds true
|
||||||
|
auto find_least(i64 new_base, i64 new_loop, i64 req_base, i64 req_loop, i64 iter) -> i64 {
|
||||||
|
while ((req_base - new_base + ++iter * req_loop) % new_loop != 0);
|
||||||
|
return req_base + iter * req_loop;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto day13() -> void {
|
||||||
|
auto ready = usize(0);
|
||||||
|
auto buses = std::vector<Pair>();
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day13.input");
|
||||||
|
getline(file, line);
|
||||||
|
ready = std::stoi(line);
|
||||||
|
getline(file, line);
|
||||||
|
auto start = usize(0);
|
||||||
|
auto end = usize(0);
|
||||||
|
auto index = usize(0);
|
||||||
|
auto id = std::string();
|
||||||
|
while ((end = line.find(',', start)) != std::string::npos) {
|
||||||
|
id = line.substr(start, end - start);
|
||||||
|
if (id != "x") {
|
||||||
|
buses.push_back({ i64(std::stoi(line.substr(start, end - start))), index });
|
||||||
|
}
|
||||||
|
start = end + 1;
|
||||||
|
++index;
|
||||||
|
}
|
||||||
|
end = line.size();
|
||||||
|
id = line.substr(start, end - start);
|
||||||
|
if (id != "x") {
|
||||||
|
buses.push_back({ i64(std::stoi(line.substr(start, end - start))), index });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto id = buses[0].id;
|
||||||
|
auto minutes = buses[0].id - (ready % buses[0].id);
|
||||||
|
for (auto i = usize(1); i < buses.size(); ++i) {
|
||||||
|
auto local_minutes = buses[i].id - (ready % buses[i].id);
|
||||||
|
if (local_minutes < minutes) {
|
||||||
|
id = buses[i].id;
|
||||||
|
minutes = local_minutes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print((id * minutes));
|
||||||
|
|
||||||
|
auto req_base = usize(buses[0].index);
|
||||||
|
auto req_loop = usize(buses[0].id );
|
||||||
|
for (auto i = usize(1); i < buses.size(); ++i) {
|
||||||
|
req_base = find_least(-buses[i].index, buses[i].id, req_base, req_loop, -1);
|
||||||
|
if (i < buses.size() - 1) {
|
||||||
|
req_loop = find_least(0, buses[i].id, 0, req_loop, 0);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
required_base (rqb), required_loop (rql)
|
||||||
|
|
||||||
|
base_loop (bl), repeat_loop (rl)
|
||||||
|
|
||||||
|
rqb + a0 * rql = bl + a1 * rl < minimize and store in required loop
|
||||||
|
a0 = (bl + a1 * rl - rqb) / rql
|
||||||
|
|
||||||
|
b0 * rql = b1 * rl < minimize and store in required loop
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
print(req_base);
|
||||||
|
}
|
112
2020/days/day14.cpp
Normal file
112
2020/days/day14.cpp
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <map>
|
||||||
|
#include <string>
|
||||||
|
#include <bitset>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
struct Op{ u8 op; u64 num1; u64 num2; };
|
||||||
|
|
||||||
|
auto set_memory(std::map<u64, u64> & map, u64 addr, const std::vector<bool> & maskX, usize index, u64 value) -> void {
|
||||||
|
while (++index < maskX.size() && !maskX[index]);
|
||||||
|
if (index == maskX.size()) {
|
||||||
|
map.insert_or_assign(addr, value);
|
||||||
|
} else {
|
||||||
|
set_memory(map, addr, maskX, index, value);
|
||||||
|
set_memory(map, addr ^ (u64(1) << (maskX.size() - index - 1)), maskX, index, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto day14() -> void {
|
||||||
|
auto ops = std::vector<Op>();
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day14.input");
|
||||||
|
while (getline(file, line)) {
|
||||||
|
if (line.find("mask") != std::string::npos) {
|
||||||
|
auto mask0 = u64(-1);
|
||||||
|
auto mask1 = u64( 0);
|
||||||
|
for (auto i = usize(7); i < line.size(); ++i) {
|
||||||
|
if (line[i] == '0') {
|
||||||
|
mask0 ^= (u64(1) << (42 - i));
|
||||||
|
} else if (line[i] == '1') {
|
||||||
|
mask1 ^= (u64(1) << (42 - i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ops.push_back({ 0, mask0, mask1 });
|
||||||
|
} else {
|
||||||
|
auto value = line.find("=") + 2;
|
||||||
|
ops.push_back({
|
||||||
|
1,
|
||||||
|
u64(std::stoll(line.substr(4, line.find("]") - 4))),
|
||||||
|
u64(std::stoll(line.substr(value, line.size() - value)))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
auto mask0 = u64(-1);
|
||||||
|
auto mask1 = u64( 0);
|
||||||
|
auto memory = std::map<u64, u64>();
|
||||||
|
for (auto op : ops) {
|
||||||
|
if (op.op == 0) {
|
||||||
|
mask0 = op.num1;
|
||||||
|
mask1 = op.num2;
|
||||||
|
} else {
|
||||||
|
memory.insert_or_assign(op.num1, (op.num2 & mask0) | mask1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
auto sum = u64(0);
|
||||||
|
for(auto mem : memory) {
|
||||||
|
sum += mem.second;
|
||||||
|
}
|
||||||
|
print(sum);
|
||||||
|
|
||||||
|
mask1 = u64(0);
|
||||||
|
memory = std::map<u64, u64>();
|
||||||
|
auto maskX = std::vector<bool>(36);
|
||||||
|
for (auto op : ops) {
|
||||||
|
if (op.op == 0) {
|
||||||
|
mask1 = op.num2;
|
||||||
|
for (auto i = usize(0); i < maskX.size(); ++i) {
|
||||||
|
auto bit = u64(1) << u64(35 - i);
|
||||||
|
maskX[i] = (op.num1 & bit) && !(op.num2 & bit);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
set_memory(memory, op.num1 | mask1, maskX, -1, op.num2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum = u64(0);
|
||||||
|
for(auto mem : memory) {
|
||||||
|
sum += mem.second;
|
||||||
|
}
|
||||||
|
print(sum);
|
||||||
|
}
|
71
2020/days/day15.cpp
Normal file
71
2020/days/day15.cpp
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
struct Pair{ u64 num; usize last; };
|
||||||
|
|
||||||
|
auto day15() -> void {
|
||||||
|
auto last = usize(0);
|
||||||
|
auto index = usize(0);
|
||||||
|
auto sequence = std::unordered_map<u64, u64>();
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day15.input");
|
||||||
|
getline(file, line);
|
||||||
|
auto start = usize(0);
|
||||||
|
auto end = usize(0);
|
||||||
|
auto num = std::string();
|
||||||
|
while ((end = line.find(',', start)) != std::string::npos) {
|
||||||
|
num = line.substr(start, end - start);
|
||||||
|
sequence.insert_or_assign(u64(std::stoll(num)), ++index);
|
||||||
|
start = end + 1;
|
||||||
|
}
|
||||||
|
end = line.size();
|
||||||
|
num = line.substr(start, end - start);
|
||||||
|
sequence.insert_or_assign(u64(std::stoll(num)), ++index);
|
||||||
|
}
|
||||||
|
while (++index < 30000000) {
|
||||||
|
if (index == 2020) {
|
||||||
|
print(last);
|
||||||
|
}
|
||||||
|
if (sequence.contains(last)) {
|
||||||
|
auto new_last = index - sequence[last];
|
||||||
|
sequence[last] = index;
|
||||||
|
last = new_last;
|
||||||
|
} else {
|
||||||
|
sequence.insert_or_assign(last, index);
|
||||||
|
last = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print(last);
|
||||||
|
}
|
209
2020/days/day16.cpp
Normal file
209
2020/days/day16.cpp
Normal file
|
@ -0,0 +1,209 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
struct Rule { u64 r11; u64 r12; u64 r21; u64 r22; };
|
||||||
|
|
||||||
|
auto read_ticket(std::vector<u64> & ticket, const std::string & line) -> void {
|
||||||
|
auto start = usize(0);
|
||||||
|
auto end = usize(0);
|
||||||
|
while ((end = line.find(",", end + 1)) != std::string::npos) {
|
||||||
|
ticket.push_back(std::stoll(line.substr(start, end - start)));
|
||||||
|
start = end + 1;
|
||||||
|
}
|
||||||
|
end = line.size();
|
||||||
|
ticket.push_back(std::stoll(line.substr(start, end - start)));
|
||||||
|
}
|
||||||
|
|
||||||
|
auto matches_rule(const Rule & rule, u64 field) -> bool {
|
||||||
|
return (rule.r11 <= field && field <= rule.r12) || (rule.r21 <= field && field <= rule.r22);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto remove_if_exists(std::vector<u64> & v, u64 search) -> bool {
|
||||||
|
auto low = usize(0);
|
||||||
|
auto high = v.size();
|
||||||
|
while (low < high) {
|
||||||
|
auto index = (low + high) / 2;
|
||||||
|
if (v[index] == search) {
|
||||||
|
v.erase(v.begin() + index);
|
||||||
|
return true;
|
||||||
|
} else if (search > v[index]) {
|
||||||
|
low = index + 1;
|
||||||
|
} else {
|
||||||
|
high = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto contains(std::vector<u64> & v, u64 search) -> bool {
|
||||||
|
auto low = usize(0);
|
||||||
|
auto high = v.size();
|
||||||
|
while (low < high) {
|
||||||
|
auto index = (low + high) / 2;
|
||||||
|
if (v[index] == search) {
|
||||||
|
return true;
|
||||||
|
} else if (search > v[index]) {
|
||||||
|
low = index + 1;
|
||||||
|
} else {
|
||||||
|
high = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto day16() -> void {
|
||||||
|
auto find = std::vector<u64>();
|
||||||
|
auto rules = std::vector<Rule>();
|
||||||
|
auto your_ticket = std::vector<u64>();
|
||||||
|
auto tickets = std::vector<std::vector<u64>>();
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day16.input");
|
||||||
|
auto index = usize(0);
|
||||||
|
while (getline(file, line) && line != "") {
|
||||||
|
auto rule = Rule();
|
||||||
|
auto start = line.find(":") + 2;
|
||||||
|
auto end = line.find("-");
|
||||||
|
rule.r11 = std::stoll(line.substr(start, end - start));
|
||||||
|
start = end + 1;
|
||||||
|
end = line.find(" ", end);
|
||||||
|
rule.r12 = std::stoll(line.substr(start, end - start));
|
||||||
|
start = end + 4;
|
||||||
|
end = line.find("-", end);
|
||||||
|
rule.r21 = std::stoll(line.substr(start, end - start));
|
||||||
|
start = end + 1;
|
||||||
|
end = line.size();
|
||||||
|
rule.r22 = std::stoll(line.substr(start, end - start));
|
||||||
|
rules.push_back(rule);
|
||||||
|
if (line.find("departure") != std::string::npos) {
|
||||||
|
find.push_back(index);
|
||||||
|
}
|
||||||
|
++index;
|
||||||
|
}
|
||||||
|
getline(file, line);
|
||||||
|
getline(file, line);
|
||||||
|
read_ticket(your_ticket, line);
|
||||||
|
getline(file, line);
|
||||||
|
getline(file, line);
|
||||||
|
while (getline(file, line)) {
|
||||||
|
auto ticket = std::vector<u64>();
|
||||||
|
read_ticket(ticket, line);
|
||||||
|
tickets.push_back(std::move(ticket));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
auto valid = std::vector<std::vector<u64>>();
|
||||||
|
{
|
||||||
|
auto foo = std::vector<u64>(your_ticket.size());
|
||||||
|
for (auto i = usize(0); i < your_ticket.size(); ++i) {
|
||||||
|
foo[i] = i;
|
||||||
|
}
|
||||||
|
for (auto i = usize(0); i < rules.size(); ++i) {
|
||||||
|
valid.push_back(foo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
auto sum = u64(0);
|
||||||
|
for (auto k = usize(0); k < tickets.size(); ++k) {
|
||||||
|
const auto & ticket = tickets[k];
|
||||||
|
auto invalid_ticket = false;
|
||||||
|
for (auto i = usize(0); i < ticket.size(); ++i) {
|
||||||
|
auto invalid_field = true;
|
||||||
|
for (auto j = usize(0); invalid_field && j < rules.size(); ++j) {
|
||||||
|
if (matches_rule(rules[j], ticket[i])) {
|
||||||
|
invalid_field = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (invalid_field) {
|
||||||
|
sum += ticket[i];
|
||||||
|
}
|
||||||
|
invalid_ticket = invalid_ticket || invalid_field;
|
||||||
|
}
|
||||||
|
if (invalid_ticket) {
|
||||||
|
tickets.erase(tickets.begin() + k);
|
||||||
|
--k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print(sum);
|
||||||
|
|
||||||
|
for (auto i = usize(0); i < tickets.size(); ++i) {
|
||||||
|
const auto & ticket = tickets[i];
|
||||||
|
for (auto j = usize(0); j < valid.size(); ++j) {
|
||||||
|
auto & v = valid[j];
|
||||||
|
for (auto k = usize(0); k < v.size(); ++k) {
|
||||||
|
if (!matches_rule(rules[j], ticket[v[k]])) {
|
||||||
|
v.erase(v.begin() + k);
|
||||||
|
--k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (auto i = usize(0); i < your_ticket.size(); ++i) {
|
||||||
|
auto cont_index = usize(0);
|
||||||
|
auto contained = usize(0);
|
||||||
|
for (auto j = usize(0); j < valid.size(); ++j) {
|
||||||
|
if (contains(valid[j], i)) {
|
||||||
|
cont_index = j;
|
||||||
|
++contained;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (contained == 1) {
|
||||||
|
for (auto j = usize(0); j < valid[cont_index].size(); ++j) {
|
||||||
|
if (valid[cont_index][j] != i) {
|
||||||
|
valid[cont_index].erase(valid[cont_index].begin() + j);
|
||||||
|
--j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto loop = true;
|
||||||
|
while (loop) {
|
||||||
|
loop = false;
|
||||||
|
for (auto i = usize(0); i < valid.size(); ++i) {
|
||||||
|
if (valid[i].size() == 1) {
|
||||||
|
for (auto j = usize(0); j < valid.size(); ++j) {
|
||||||
|
if (j != i) {
|
||||||
|
auto temp = remove_if_exists(valid[j], valid[i][0]);
|
||||||
|
loop = temp || loop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto product = u64(1);
|
||||||
|
for (auto i = usize(0); i < find.size(); ++i) {
|
||||||
|
product *= your_ticket[valid[find[i]][0]];
|
||||||
|
}
|
||||||
|
print(product);
|
||||||
|
}
|
163
2020/days/day17.cpp
Normal file
163
2020/days/day17.cpp
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <array>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
constexpr auto CYCLES = 6;
|
||||||
|
constexpr auto BUFFER = CYCLES + 1;
|
||||||
|
|
||||||
|
auto neighbor3d_count(const auto & pocket, i32 x, i32 y, i32 z) -> usize {
|
||||||
|
auto count = usize(0);
|
||||||
|
for (auto i = i32(-1); i < 2; ++i) {
|
||||||
|
for (auto j = i32(-1); j < 2; ++j) {
|
||||||
|
for (auto k = i32(-1); k < 2; ++k) {
|
||||||
|
count += (i != 0 || j != 0 || k != 0) && pocket[x + i][y + j][z + k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto neighbor4d_count(const auto & pocket, i32 w, i32 x, i32 y, i32 z) -> usize {
|
||||||
|
auto count = usize(0);
|
||||||
|
for (auto i = i32(-1); i < 2; ++i) {
|
||||||
|
for (auto j = i32(-1); j < 2; ++j) {
|
||||||
|
for (auto k = i32(-1); k < 2; ++k) {
|
||||||
|
for (auto l = i32(-1); l < 2; ++l) {
|
||||||
|
count += (i != 0 || j != 0 || k != 0 || l != 0) && pocket[w + l][x + i][y + j][z + k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto day17() -> void {
|
||||||
|
auto pocket = std::vector<std::vector<std::vector<std::vector<bool>>>>();
|
||||||
|
{
|
||||||
|
auto lines = std::vector<std::string>();
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day17.input");
|
||||||
|
while (getline(file, line)) {
|
||||||
|
lines.push_back(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pocket = std::vector<std::vector<std::vector<std::vector<bool>>>>(BUFFER * 2 + 1);
|
||||||
|
for (auto w = usize(0); w < pocket.size(); ++w) {
|
||||||
|
pocket[w] = std::vector<std::vector<std::vector<bool>>>(lines[0].size() + BUFFER * 2);
|
||||||
|
for (auto i = usize(0); i < pocket[0].size(); ++i) {
|
||||||
|
auto vec = std::vector<std::vector<bool>>(lines.size() + BUFFER * 2);
|
||||||
|
for (auto j = usize(0); j < vec.size(); ++j) {
|
||||||
|
vec[j] = std::vector<bool>(BUFFER * 2 + 1);
|
||||||
|
if (w == BUFFER && i >= BUFFER && i < BUFFER + lines[0].size() && j >= BUFFER && j < BUFFER + lines.size()) {
|
||||||
|
vec[j][BUFFER] = lines[j - BUFFER][i - BUFFER] == '#';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pocket[w][i] = std::move(vec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto pockets = std::array<std::vector<std::vector<std::vector<bool>>>, 2>{ pocket[BUFFER], pocket[BUFFER] };
|
||||||
|
auto bit = false;
|
||||||
|
for (auto i = usize(0); i < CYCLES; ++i) {
|
||||||
|
auto & read = pockets[bit];
|
||||||
|
auto & write = pockets[bit = !bit];
|
||||||
|
for (auto x = i32(1); x < read.size() - 1; ++x) {
|
||||||
|
for (auto y = i32(1); y < read[0].size() - 1; ++y) {
|
||||||
|
for (auto z = i32(1); z < read[0][0].size() - 1; ++z) {
|
||||||
|
auto neighbors = neighbor3d_count(read, x, y, z);
|
||||||
|
if (read[x][y][z] && (neighbors < 2 || neighbors > 3)) {
|
||||||
|
write[x][y][z] = false;
|
||||||
|
} else if (!read[x][y][z] && neighbors == 3) {
|
||||||
|
write[x][y][z] = true;
|
||||||
|
} else {
|
||||||
|
write[x][y][z] = read[x][y][z];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto & pocket = pockets[bit];
|
||||||
|
auto count = usize(0);
|
||||||
|
for (auto i = usize(0); i < pocket.size(); ++i) {
|
||||||
|
for (auto j = usize(0); j < pocket[0].size(); ++j) {
|
||||||
|
for (auto k = usize(0); k < pocket[0][0].size(); ++k) {
|
||||||
|
count += pocket[i][j][k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto pockets = std::array<std::vector<std::vector<std::vector<std::vector<bool>>>>, 2>{ pocket, pocket };
|
||||||
|
auto bit = false;
|
||||||
|
for (auto i = usize(0); i < CYCLES; ++i) {
|
||||||
|
auto & read = pockets[bit];
|
||||||
|
auto & write = pockets[bit = !bit];
|
||||||
|
for (auto w = i32(1); w < read.size() - 1; ++w) {
|
||||||
|
for (auto x = i32(1); x < read[0].size() - 1; ++x) {
|
||||||
|
for (auto y = i32(1); y < read[0][0].size() - 1; ++y) {
|
||||||
|
for (auto z = i32(1); z < read[0][0][0].size() - 1; ++z) {
|
||||||
|
auto neighbors = neighbor4d_count(read, w, x, y, z);
|
||||||
|
if (read[w][x][y][z] && (neighbors < 2 || neighbors > 3)) {
|
||||||
|
write[w][x][y][z] = false;
|
||||||
|
} else if (!read[w][x][y][z] && neighbors == 3) {
|
||||||
|
write[w][x][y][z] = true;
|
||||||
|
} else {
|
||||||
|
write[w][x][y][z] = read[w][x][y][z];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto & pocket = pockets[bit];
|
||||||
|
auto count = usize(0);
|
||||||
|
for (auto i = usize(0); i < pocket.size(); ++i) {
|
||||||
|
for (auto j = usize(0); j < pocket[0].size(); ++j) {
|
||||||
|
for (auto k = usize(0); k < pocket[0][0].size(); ++k) {
|
||||||
|
for (auto l = usize(0); l < pocket[0][0][0].size(); ++l) {
|
||||||
|
count += pocket[i][j][k][l];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print(count);
|
||||||
|
}
|
||||||
|
}
|
128
2020/days/day18.cpp
Normal file
128
2020/days/day18.cpp
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
auto evaluate_part1(const std::string & equation, usize & index) -> u64 {
|
||||||
|
auto value = u64(0);
|
||||||
|
auto operation = 0;
|
||||||
|
while (equation[index] != ')') {
|
||||||
|
if ('0' <= equation[index] && equation[index] <= '9') {
|
||||||
|
auto end = index;
|
||||||
|
while ('0' <= equation[++end] && equation[end] <= '9');
|
||||||
|
if (operation == 0) {
|
||||||
|
value += std::stoll(equation.substr(index, end - index));
|
||||||
|
} else {
|
||||||
|
value *= std::stoll(equation.substr(index, end - index));
|
||||||
|
}
|
||||||
|
index = end;
|
||||||
|
} else if (equation[index] == '+') {
|
||||||
|
operation = 0;
|
||||||
|
index += 2;
|
||||||
|
} else if (equation[index] == '*') {
|
||||||
|
operation = 1;
|
||||||
|
index += 2;
|
||||||
|
} else if (equation[index] == '(') {
|
||||||
|
if (operation == 0) {
|
||||||
|
value += evaluate_part1(equation, ++index);
|
||||||
|
} else {
|
||||||
|
value *= evaluate_part1(equation, ++index);
|
||||||
|
}
|
||||||
|
} else if (equation[index] == ' ') {
|
||||||
|
++index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
++index;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto evaluate_part2(const std::string & equation, usize & index) -> u64;
|
||||||
|
auto evaluate_part2_addition(const std::string & equation, usize & index) -> u64;
|
||||||
|
auto evaluate_part2_factor(const std::string & equation, usize & index) -> u64;
|
||||||
|
|
||||||
|
auto evaluate_part2(const std::string & equation, usize & index) -> u64 {
|
||||||
|
auto value1 = evaluate_part2_addition(equation, index);
|
||||||
|
if (++index < equation.size() && equation[index] == '*') {
|
||||||
|
auto value2 = evaluate_part2(equation, index += 2);
|
||||||
|
return value1 * value2;
|
||||||
|
}
|
||||||
|
--index;
|
||||||
|
return value1;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto evaluate_part2_addition(const std::string & equation, usize & index) -> u64 {
|
||||||
|
auto value1 = evaluate_part2_factor(equation, index);
|
||||||
|
if (++index < equation.size() && equation[index] == '+') {
|
||||||
|
auto value2 = evaluate_part2_addition(equation, index += 2);
|
||||||
|
return value1 + value2;
|
||||||
|
}
|
||||||
|
--index;
|
||||||
|
return value1;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto evaluate_part2_factor(const std::string & equation, usize & index) -> u64 {
|
||||||
|
auto value = u64(0);
|
||||||
|
if (equation[index] == '(') {
|
||||||
|
value = evaluate_part2(equation, ++index);
|
||||||
|
++index;
|
||||||
|
} else {
|
||||||
|
auto end = index;
|
||||||
|
while ('0' <= equation[++end] && equation[end] <= '9');
|
||||||
|
value = std::stoll(equation.substr(index, end - index));
|
||||||
|
index = end;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto day18() -> void {
|
||||||
|
auto equations = std::vector<std::string>();
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day18.input");
|
||||||
|
while (getline(file, line)) {
|
||||||
|
equations.push_back(line + ')');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
auto sum = u64(0);
|
||||||
|
for (auto i = usize(0); i < equations.size(); ++i) {
|
||||||
|
auto index = usize(0);
|
||||||
|
sum += evaluate_part1(equations[i], index);
|
||||||
|
}
|
||||||
|
print(sum);
|
||||||
|
|
||||||
|
sum = u64(0);
|
||||||
|
for (auto i = usize(0); i < equations.size(); ++i) {
|
||||||
|
auto index = usize(0);
|
||||||
|
sum += evaluate_part2_factor('(' + equations[i], index);
|
||||||
|
}
|
||||||
|
print(sum);
|
||||||
|
}
|
195
2020/days/day19.cpp
Normal file
195
2020/days/day19.cpp
Normal file
|
@ -0,0 +1,195 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
enum RuleType { Char, Sequence, Alternator };
|
||||||
|
|
||||||
|
struct Rule {
|
||||||
|
RuleType type;
|
||||||
|
char c;
|
||||||
|
std::vector<u64> list;
|
||||||
|
std::vector<std::vector<u64>> or_list;
|
||||||
|
|
||||||
|
explicit Rule(char c) noexcept : type(Char), c(c) {}
|
||||||
|
explicit Rule(std::vector<u64> && list) noexcept : type(Sequence), list(std::move(list)) {}
|
||||||
|
explicit Rule(std::vector<std::vector<u64>> && or_list) noexcept : type(Alternator), or_list(std::move(or_list)) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
auto extract_numbers(const std::string & list) -> std::vector<u64> {
|
||||||
|
auto nums = std::vector<u64>();
|
||||||
|
auto end = usize(0);
|
||||||
|
auto start = usize(0);
|
||||||
|
while ((end = list.find(" ", ++end)) != std::string::npos) {
|
||||||
|
nums.push_back(std::stoll(list.substr(start, end - start)));
|
||||||
|
start = end + 1;
|
||||||
|
}
|
||||||
|
return std::move(nums);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto matches(const std::string & string, usize & index, std::unordered_map<u64, Rule> & rules, u64 rule_id, bool sub) -> bool;
|
||||||
|
|
||||||
|
auto matches_list(const std::string & string, usize & index, std::unordered_map<u64, Rule> & rules, const std::vector<u64> & rule_ids, bool sub) -> bool {
|
||||||
|
auto local_index = index;
|
||||||
|
for (auto i = usize(0); i < rule_ids.size(); ++i) {
|
||||||
|
if (!matches(string, local_index, rules, rule_ids[i], true)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
index = local_index;
|
||||||
|
return (sub || index == string.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
auto matches(const std::string & string, usize & index, std::unordered_map<u64, Rule> & rules, u64 rule_id, bool sub) -> bool {
|
||||||
|
if (index >= string.size()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
auto & rule = rules.find(rule_id)->second;
|
||||||
|
switch (rule.type) {
|
||||||
|
case Char: {
|
||||||
|
if (string[index] == rule.c) {
|
||||||
|
++index;
|
||||||
|
return (sub || index == string.size());
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case Sequence: {
|
||||||
|
return matches_list(string, index, rules, rule.list, sub);
|
||||||
|
}
|
||||||
|
case Alternator: {
|
||||||
|
for (auto i = usize(0); i < rule.or_list.size(); ++i) {
|
||||||
|
auto local_index = index;
|
||||||
|
if (matches_list(string, local_index, rules, rule.or_list[i], sub)) {
|
||||||
|
index = local_index;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// むだ!makes the compiler happy though
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto min_length(std::unordered_map<u64, Rule> & rules, u64 rule_id) -> usize;
|
||||||
|
|
||||||
|
auto min_length_list(std::unordered_map<u64, Rule> & rules, const std::vector<u64> & rule_ids) -> usize {
|
||||||
|
auto len = usize(0);
|
||||||
|
for (auto i = usize(0); i < rule_ids.size(); ++i) {
|
||||||
|
len += min_length(rules, rule_ids[i]);
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto min_length(std::unordered_map<u64, Rule> & rules, u64 rule_id) -> usize {
|
||||||
|
auto & rule = rules.find(rule_id)->second;
|
||||||
|
switch (rule.type) {
|
||||||
|
case Char: return 1;
|
||||||
|
case Sequence: return min_length_list(rules, rule.list);
|
||||||
|
case Alternator: {
|
||||||
|
auto min = min_length_list(rules, rule.or_list[0]);
|
||||||
|
for (auto i = usize(1); i < rule.or_list.size(); ++i) {
|
||||||
|
auto len = min_length_list(rules, rule.or_list[i]);
|
||||||
|
if (len < min) {
|
||||||
|
min = len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// このもむだ!
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto day19() -> void {
|
||||||
|
auto rules = std::unordered_map<u64, Rule>();
|
||||||
|
auto strings = std::vector<std::string>();
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day19.input");
|
||||||
|
getline(file, line);
|
||||||
|
while (line != "") {
|
||||||
|
auto end = line.find(":");
|
||||||
|
auto id = std::stoll(line.substr(0, end));
|
||||||
|
if ((end = line.find("\"")) != std::string::npos) {
|
||||||
|
rules.insert_or_assign(id, Rule(line[end + 1]));
|
||||||
|
} else if (line.find("|") != std::string::npos) {
|
||||||
|
end = line.find(":") + 2;
|
||||||
|
line = line.substr(end, line.size() - end) + " |";
|
||||||
|
auto sequences = std::vector<std::vector<u64>>();
|
||||||
|
end = usize(0);
|
||||||
|
auto start = usize(0);
|
||||||
|
while ((end = line.find("|", ++end)) != std::string::npos) {
|
||||||
|
sequences.push_back(extract_numbers(line.substr(start, end - start)));
|
||||||
|
start = end + 2;
|
||||||
|
}
|
||||||
|
rules.insert_or_assign(id, Rule(std::move(sequences)));
|
||||||
|
} else {
|
||||||
|
end = line.find(":") + 2;
|
||||||
|
rules.insert_or_assign(id, Rule(extract_numbers(line.substr(end, line.size() - end) + ' ')));
|
||||||
|
}
|
||||||
|
getline(file, line);
|
||||||
|
}
|
||||||
|
while (getline(file, line)) {
|
||||||
|
strings.push_back(std::move(line));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto successful = usize(0);
|
||||||
|
for (auto i = usize(0); i < strings.size(); ++i) {
|
||||||
|
auto index = usize(0);
|
||||||
|
successful += matches(strings[i], index, rules, 0, false);
|
||||||
|
}
|
||||||
|
print(successful);
|
||||||
|
|
||||||
|
successful = usize(0);
|
||||||
|
auto min_length42 = min_length(rules, 42);
|
||||||
|
auto min_length31 = min_length(rules, 31);
|
||||||
|
for (auto i = usize(0); i < strings.size(); ++i) {
|
||||||
|
auto unsuccessful = true;
|
||||||
|
auto base = min_length42 * 2 + min_length31;
|
||||||
|
auto list = std::vector<u64>{ 42, 42, 31 };
|
||||||
|
for (auto j = usize(0); unsuccessful && j * min_length42 + base <= strings[i].size(); ++j) {
|
||||||
|
auto copy = list;
|
||||||
|
for (auto k = usize(0); unsuccessful && k <= j; ++k) {
|
||||||
|
auto index = usize(0);
|
||||||
|
unsuccessful = !matches_list(strings[i], index, rules, copy, false);
|
||||||
|
copy.push_back(31);
|
||||||
|
}
|
||||||
|
list.insert(list.begin(), 42);
|
||||||
|
}
|
||||||
|
successful += !unsuccessful;
|
||||||
|
}
|
||||||
|
print(successful);
|
||||||
|
}
|
|
@ -29,7 +29,8 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
struct Password {
|
struct Password {
|
||||||
u32 min;
|
u32 min;
|
||||||
|
@ -72,11 +73,11 @@ auto count_valid_toboggan(const std::vector<Password> & passwords) -> u32 {
|
||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day2() -> void {
|
||||||
auto passwords = std::vector<Password>();
|
auto passwords = std::vector<Password>();
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day2.input");
|
auto file = std::ifstream("inputs/day2.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
auto index = usize(0);
|
auto index = usize(0);
|
||||||
auto password = Password{};
|
auto password = Password{};
|
||||||
|
@ -88,8 +89,6 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << count_valid_sled(passwords) << std::endl;
|
print(count_valid_sled(passwords) );
|
||||||
std::cout << count_valid_toboggan(passwords) << std::endl;
|
print(count_valid_toboggan(passwords));
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
105
2020/days/day23.cpp
Normal file
105
2020/days/day23.cpp
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <array>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
constexpr auto CUP_COUNT = 9;
|
||||||
|
|
||||||
|
auto day23() -> void {
|
||||||
|
auto start = usize(0);
|
||||||
|
auto nums = std::array<usize, CUP_COUNT>();
|
||||||
|
auto big_nums = std::vector<usize>(1000000);
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day23.input");
|
||||||
|
getline(file, line);
|
||||||
|
for (auto i = usize(0); i < CUP_COUNT; ++i) {
|
||||||
|
nums[line[i] - '1'] = line[(i + 1) % CUP_COUNT] - '1';
|
||||||
|
}
|
||||||
|
start = line[0] - '1';
|
||||||
|
for (auto i = usize(0); i < CUP_COUNT; ++i) {
|
||||||
|
if (nums[i] != start) {
|
||||||
|
big_nums[i] = nums[i];
|
||||||
|
} else {
|
||||||
|
big_nums[i] = CUP_COUNT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (auto i = CUP_COUNT; i < big_nums.size() - 1; ++i) {
|
||||||
|
big_nums[i] = i + 1;
|
||||||
|
}
|
||||||
|
big_nums[big_nums.size() - 1] = start;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto begin = usize(0);
|
||||||
|
auto end = usize(0);
|
||||||
|
|
||||||
|
// Part 1
|
||||||
|
auto current = start;
|
||||||
|
for (auto i = usize(0); i < 100; ++i) {
|
||||||
|
begin = nums[current];
|
||||||
|
end = nums[nums[begin]];
|
||||||
|
nums[current] = nums[end];
|
||||||
|
auto destination = current;
|
||||||
|
while (
|
||||||
|
begin == (destination = (destination + CUP_COUNT - 1) % CUP_COUNT)
|
||||||
|
|| nums[begin] == destination
|
||||||
|
|| end == destination
|
||||||
|
);
|
||||||
|
nums[end] = nums[destination];
|
||||||
|
nums[destination] = begin;
|
||||||
|
current = nums[current];
|
||||||
|
}
|
||||||
|
auto out = std::array<c8, CUP_COUNT + 1>{ 0 };
|
||||||
|
for (auto i = nums[0], j = usize(0); i != 0; i = nums[i], ++j) {
|
||||||
|
out[j] = (i + '1');
|
||||||
|
}
|
||||||
|
print(&out[0]);
|
||||||
|
|
||||||
|
// Part 2
|
||||||
|
current = start;
|
||||||
|
for (auto i = usize(0); i < 10000000; ++i) {
|
||||||
|
begin = big_nums[current];
|
||||||
|
end = big_nums[big_nums[begin]];
|
||||||
|
big_nums[current] = big_nums[end];
|
||||||
|
auto destination = current;
|
||||||
|
while (
|
||||||
|
begin == (destination = (destination + big_nums.size() - 1) % big_nums.size())
|
||||||
|
|| big_nums[begin] == destination
|
||||||
|
|| end == destination
|
||||||
|
);
|
||||||
|
big_nums[end] = big_nums[destination];
|
||||||
|
big_nums[destination] = begin;
|
||||||
|
current = big_nums[current];
|
||||||
|
}
|
||||||
|
print(((big_nums[0] + 1) * (big_nums[big_nums[0]] + 1)));
|
||||||
|
}
|
|
@ -29,40 +29,53 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
auto read_field_and_count_trees(std::vector<std::string> & trees, usize horizontal_increment, usize vertical_increment) -> u64 {
|
struct TreeVector{ usize horz; usize vert; };
|
||||||
auto tree_count = u64(0);
|
struct Coordinate{ usize x_index; usize y_index; };
|
||||||
|
|
||||||
auto x_index = usize(-horizontal_increment);
|
auto read_field_and_count_trees(const std::vector<TreeVector> & vectors) -> std::vector<u64> {
|
||||||
auto y_index = usize(-1);
|
auto tree_counts = std::vector<u64>(vectors.size());
|
||||||
auto line = std::string();
|
auto coords = std::vector<Coordinate>(vectors.size());
|
||||||
auto file = std::ifstream("day3.input");
|
for (auto i = usize(0); i < coords.size(); ++i) {
|
||||||
|
coords[i] = { usize(-vectors[i].horz), usize(-1) };
|
||||||
while (getline(file, line)) {
|
|
||||||
auto vertical_check = (++y_index % vertical_increment == 0);
|
|
||||||
tree_count += vertical_check * (line[(x_index += (vertical_check * horizontal_increment)) % line.size()] == '#');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return tree_count;
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day3.input");
|
||||||
|
|
||||||
|
while (getline(file, line)) {
|
||||||
|
for (auto i = usize(0); i < vectors.size(); ++i) {
|
||||||
|
auto & vector = vectors[i];
|
||||||
|
auto & coord = coords[i];
|
||||||
|
|
||||||
|
auto vertical_check = (++coord.y_index % vector.vert == 0);
|
||||||
|
tree_counts[i] += vertical_check * (line[(coord.x_index += (vertical_check * vector.horz)) % line.size()] == '#');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::move(tree_counts);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char ** argv) -> i32 {
|
auto day3() -> void {
|
||||||
auto trees = std::vector<std::string>();
|
auto trees = std::vector<std::string>();
|
||||||
auto tree_counts = std::vector<u64>();
|
auto tree_counts = read_field_and_count_trees(
|
||||||
|
std::vector<TreeVector>{
|
||||||
|
{ 3, 1 },
|
||||||
|
{ 1, 1 },
|
||||||
|
{ 5, 1 },
|
||||||
|
{ 7, 1 },
|
||||||
|
{ 1, 2 },
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
tree_counts.push_back(read_field_and_count_trees(trees, 3, 1));
|
print(tree_counts[0]);
|
||||||
std::cout << tree_counts[0] << std::endl;
|
|
||||||
|
|
||||||
tree_counts.push_back(read_field_and_count_trees(trees, 1, 1));
|
|
||||||
tree_counts.push_back(read_field_and_count_trees(trees, 5, 1));
|
|
||||||
tree_counts.push_back(read_field_and_count_trees(trees, 7, 1));
|
|
||||||
tree_counts.push_back(read_field_and_count_trees(trees, 1, 2));
|
|
||||||
auto tree_count_product = u64(1);
|
auto tree_count_product = u64(1);
|
||||||
for (auto tree_count : tree_counts) {
|
for (auto tree_count : tree_counts) {
|
||||||
tree_count_product *= tree_count;
|
tree_count_product *= tree_count;
|
||||||
}
|
}
|
||||||
std::cout << tree_count_product << std::endl;
|
|
||||||
|
|
||||||
return 0;
|
print(tree_count_product);
|
||||||
}
|
}
|
|
@ -29,7 +29,8 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
struct KeyValue {
|
struct KeyValue {
|
||||||
std::string key;
|
std::string key;
|
||||||
|
@ -46,13 +47,13 @@ auto try_num(const std::string & passport, usize index) -> bool {
|
||||||
return Min <= num && num <= Max;
|
return Min <= num && num <= Max;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day4() -> void {
|
||||||
auto valid_count1 = usize(0);
|
auto valid_count1 = usize(0);
|
||||||
auto valid_count2 = usize(0);
|
auto valid_count2 = usize(0);
|
||||||
|
|
||||||
auto passport = std::string();
|
auto passport = std::string();
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day4.input");
|
auto file = std::ifstream("inputs/day4.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
if (line == "") {
|
if (line == "") {
|
||||||
auto elements = std::vector<KeyValue>{
|
auto elements = std::vector<KeyValue>{
|
||||||
|
@ -108,7 +109,6 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << valid_count1 << ", " << valid_count2 << std::endl;
|
print(valid_count1);
|
||||||
|
print(valid_count2);
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -30,12 +30,13 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day5() -> void {
|
||||||
auto seat = usize(0);
|
auto seat = usize(0);
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day5.input");
|
auto file = std::ifstream("inputs/day5.input");
|
||||||
|
|
||||||
auto seats = std::vector<usize>();
|
auto seats = std::vector<usize>();
|
||||||
|
|
||||||
|
@ -49,16 +50,14 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
}
|
}
|
||||||
seats.push_back(local_seat);
|
seats.push_back(local_seat);
|
||||||
}
|
}
|
||||||
std::cout << seat << std::endl;
|
print(seat);
|
||||||
|
|
||||||
std::sort(seats.begin(), seats.end());
|
std::sort(seats.begin(), seats.end());
|
||||||
|
|
||||||
for (auto i = usize(0); i < seats.size() - 1; ++i) {
|
for (auto i = usize(0); i < seats.size() - 1; ++i) {
|
||||||
if (seats[i] + 2 == seats[i + 1]) {
|
if (seats[i] + 2 == seats[i + 1]) {
|
||||||
std::cout << (seats[i] + 1) << std::endl;
|
print((seats[i] + 1));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -29,12 +29,13 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day6() -> void {
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day6.input");
|
auto file = std::ifstream("inputs/day6.input");
|
||||||
|
|
||||||
auto answers = std::vector<u32>(26);
|
auto answers = std::vector<u32>(26);
|
||||||
|
|
||||||
|
@ -57,8 +58,7 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout << sum_1 << ", " << sum_2 << std::endl;
|
print(sum_1);
|
||||||
|
print(sum_2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -32,7 +32,8 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
struct SubBag { std::string type; u32 count; };
|
struct SubBag { std::string type; u32 count; };
|
||||||
|
|
||||||
|
@ -60,11 +61,11 @@ auto count_to(const std::string & search, std::map<std::string, Edges> & map) ->
|
||||||
return counted;
|
return counted;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day7() -> void {
|
||||||
auto bag_graph = std::map<std::string, Edges>();
|
auto bag_graph = std::map<std::string, Edges>();
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day7.input");
|
auto file = std::ifstream("inputs/day7.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
auto find = line.find("bag") - 1;
|
auto find = line.find("bag") - 1;
|
||||||
auto bag_type = line.substr(0, line.find("bag") - 1);
|
auto bag_type = line.substr(0, line.find("bag") - 1);
|
||||||
|
@ -96,9 +97,7 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout << seen.size() << std::endl;
|
print(seen.size());
|
||||||
|
|
||||||
std::cout << (count_to("shiny gold", bag_graph) - 1) << std::endl;
|
print((count_to("shiny gold", bag_graph) - 1));
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -29,7 +29,8 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
enum OpCode { Acc, Jmp, Nop };
|
enum OpCode { Acc, Jmp, Nop };
|
||||||
struct Op{ OpCode code; i32 num; bool executed; };
|
struct Op{ OpCode code; i32 num; bool executed; };
|
||||||
|
@ -81,11 +82,11 @@ auto attempt_swap(State & state, std::vector<Op> & ops) -> bool {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day8() -> void {
|
||||||
auto ops = std::vector<Op>();
|
auto ops = std::vector<Op>();
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day8.input");
|
auto file = std::ifstream("inputs/day8.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
ops.push_back(extract_op(line));
|
ops.push_back(extract_op(line));
|
||||||
}
|
}
|
||||||
|
@ -95,18 +96,16 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
while (!ops[state.isp].executed) {
|
while (!ops[state.isp].executed) {
|
||||||
execute(state, ops);
|
execute(state, ops);
|
||||||
}
|
}
|
||||||
std::cout << state.acc << std::endl;
|
print(state.acc);
|
||||||
|
|
||||||
for (auto & op : ops) { op.executed = false; }
|
for (auto & op : ops) { op.executed = false; }
|
||||||
|
|
||||||
state = State{ 0, 0 };
|
state = State{ 0, 0 };
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (attempt_swap(state, ops)) {
|
if (attempt_swap(state, ops)) {
|
||||||
std::cout << state.acc << std::endl;
|
print(state.acc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
execute(state, ops);
|
execute(state, ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -29,7 +29,8 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
auto find_sum(usize index, std::vector<u64> xmas) {
|
auto find_sum(usize index, std::vector<u64> xmas) {
|
||||||
for (auto i = index - 25; i < index - 1; ++i) {
|
for (auto i = index - 25; i < index - 1; ++i) {
|
||||||
|
@ -42,10 +43,10 @@ auto find_sum(usize index, std::vector<u64> xmas) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto day9() -> void {
|
||||||
auto xmas = std::vector<u64>();
|
auto xmas = std::vector<u64>();
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("day9.input");
|
auto file = std::ifstream("inputs/day9.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
xmas.push_back(std::stoll(line));
|
xmas.push_back(std::stoll(line));
|
||||||
}
|
}
|
||||||
|
@ -53,7 +54,7 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
auto invalid = u64(0);
|
auto invalid = u64(0);
|
||||||
for (auto i = usize(25); i < xmas.size(); ++i) {
|
for (auto i = usize(25); i < xmas.size(); ++i) {
|
||||||
if (!find_sum(i, xmas)) {
|
if (!find_sum(i, xmas)) {
|
||||||
std::cout << (invalid = xmas[i]) << std::endl;
|
print((invalid = xmas[i]));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,7 +83,5 @@ auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
max = xmas[i];
|
max = xmas[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout << (min + max) << std::endl;
|
print((min + max));
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
748
2020/inputs/day12.input
Normal file
748
2020/inputs/day12.input
Normal file
|
@ -0,0 +1,748 @@
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
W3
|
||||||
|
F98
|
||||||
|
F87
|
||||||
|
R90
|
||||||
|
F57
|
||||||
|
R180
|
||||||
|
F3
|
||||||
|
L90
|
||||||
|
F60
|
||||||
|
N3
|
||||||
|
F94
|
||||||
|
N3
|
||||||
|
E2
|
||||||
|
S2
|
||||||
|
W2
|
||||||
|
L90
|
||||||
|
F26
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
F58
|
||||||
|
S5
|
||||||
|
F22
|
||||||
|
N3
|
||||||
|
F95
|
||||||
|
N1
|
||||||
|
W1
|
||||||
|
F11
|
||||||
|
R180
|
||||||
|
S3
|
||||||
|
R270
|
||||||
|
N1
|
||||||
|
N1
|
||||||
|
E4
|
||||||
|
S3
|
||||||
|
F81
|
||||||
|
W2
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
S1
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
E2
|
||||||
|
F72
|
||||||
|
S1
|
||||||
|
W1
|
||||||
|
F73
|
||||||
|
W4
|
||||||
|
L180
|
||||||
|
S1
|
||||||
|
W5
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
N3
|
||||||
|
F28
|
||||||
|
N1
|
||||||
|
F84
|
||||||
|
R90
|
||||||
|
E5
|
||||||
|
F13
|
||||||
|
W5
|
||||||
|
L90
|
||||||
|
F11
|
||||||
|
E4
|
||||||
|
F63
|
||||||
|
S1
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
S5
|
||||||
|
F20
|
||||||
|
W1
|
||||||
|
S4
|
||||||
|
W1
|
||||||
|
S2
|
||||||
|
F67
|
||||||
|
N1
|
||||||
|
R180
|
||||||
|
F11
|
||||||
|
E1
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
F38
|
||||||
|
S5
|
||||||
|
F27
|
||||||
|
S5
|
||||||
|
W3
|
||||||
|
S3
|
||||||
|
L90
|
||||||
|
N2
|
||||||
|
W2
|
||||||
|
S1
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
E1
|
||||||
|
F16
|
||||||
|
L90
|
||||||
|
E4
|
||||||
|
N1
|
||||||
|
L90
|
||||||
|
F89
|
||||||
|
E5
|
||||||
|
F90
|
||||||
|
E1
|
||||||
|
L180
|
||||||
|
N1
|
||||||
|
E3
|
||||||
|
S2
|
||||||
|
F58
|
||||||
|
S3
|
||||||
|
F53
|
||||||
|
R90
|
||||||
|
F100
|
||||||
|
W1
|
||||||
|
F53
|
||||||
|
W5
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
N4
|
||||||
|
F54
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
E2
|
||||||
|
F63
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
F40
|
||||||
|
F90
|
||||||
|
N3
|
||||||
|
F83
|
||||||
|
E5
|
||||||
|
F35
|
||||||
|
W4
|
||||||
|
W5
|
||||||
|
S3
|
||||||
|
E2
|
||||||
|
S2
|
||||||
|
S1
|
||||||
|
F12
|
||||||
|
L90
|
||||||
|
S1
|
||||||
|
F41
|
||||||
|
R90
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
F66
|
||||||
|
S2
|
||||||
|
F34
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
E5
|
||||||
|
R90
|
||||||
|
F25
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
S2
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
R90
|
||||||
|
F95
|
||||||
|
N3
|
||||||
|
W2
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
R90
|
||||||
|
N2
|
||||||
|
F84
|
||||||
|
L90
|
||||||
|
N2
|
||||||
|
R90
|
||||||
|
S1
|
||||||
|
L90
|
||||||
|
F93
|
||||||
|
L90
|
||||||
|
F60
|
||||||
|
S4
|
||||||
|
F85
|
||||||
|
S2
|
||||||
|
F84
|
||||||
|
R180
|
||||||
|
W5
|
||||||
|
N4
|
||||||
|
W5
|
||||||
|
R270
|
||||||
|
S2
|
||||||
|
E2
|
||||||
|
L180
|
||||||
|
W4
|
||||||
|
R180
|
||||||
|
W5
|
||||||
|
F56
|
||||||
|
E1
|
||||||
|
F45
|
||||||
|
W4
|
||||||
|
R90
|
||||||
|
L180
|
||||||
|
S1
|
||||||
|
W4
|
||||||
|
S5
|
||||||
|
F87
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
F76
|
||||||
|
R90
|
||||||
|
F76
|
||||||
|
S1
|
||||||
|
E4
|
||||||
|
F6
|
||||||
|
S1
|
||||||
|
E2
|
||||||
|
F47
|
||||||
|
S3
|
||||||
|
W2
|
||||||
|
F16
|
||||||
|
F75
|
||||||
|
E3
|
||||||
|
F75
|
||||||
|
E4
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
W3
|
||||||
|
F1
|
||||||
|
S1
|
||||||
|
F8
|
||||||
|
E2
|
||||||
|
F64
|
||||||
|
R90
|
||||||
|
W4
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
E2
|
||||||
|
N1
|
||||||
|
E1
|
||||||
|
L180
|
||||||
|
F31
|
||||||
|
L180
|
||||||
|
E5
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
R90
|
||||||
|
F77
|
||||||
|
E3
|
||||||
|
F65
|
||||||
|
E4
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
N3
|
||||||
|
E3
|
||||||
|
F4
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
N4
|
||||||
|
F28
|
||||||
|
R180
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
N1
|
||||||
|
W1
|
||||||
|
L180
|
||||||
|
E4
|
||||||
|
F51
|
||||||
|
W4
|
||||||
|
F9
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
W5
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
W2
|
||||||
|
F44
|
||||||
|
R90
|
||||||
|
E1
|
||||||
|
L180
|
||||||
|
S4
|
||||||
|
F93
|
||||||
|
S2
|
||||||
|
F58
|
||||||
|
R90
|
||||||
|
F80
|
||||||
|
L90
|
||||||
|
E2
|
||||||
|
F20
|
||||||
|
R90
|
||||||
|
F19
|
||||||
|
S4
|
||||||
|
F22
|
||||||
|
W1
|
||||||
|
S2
|
||||||
|
F62
|
||||||
|
N2
|
||||||
|
E5
|
||||||
|
F21
|
||||||
|
L90
|
||||||
|
F16
|
||||||
|
W2
|
||||||
|
F58
|
||||||
|
E2
|
||||||
|
F54
|
||||||
|
N1
|
||||||
|
F83
|
||||||
|
N3
|
||||||
|
E2
|
||||||
|
F62
|
||||||
|
S3
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
L270
|
||||||
|
F29
|
||||||
|
N5
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
F19
|
||||||
|
E5
|
||||||
|
R180
|
||||||
|
F87
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
F22
|
||||||
|
W3
|
||||||
|
S5
|
||||||
|
F35
|
||||||
|
E3
|
||||||
|
N5
|
||||||
|
R180
|
||||||
|
E2
|
||||||
|
R270
|
||||||
|
N3
|
||||||
|
F5
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
S1
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
R270
|
||||||
|
N5
|
||||||
|
L180
|
||||||
|
F79
|
||||||
|
N3
|
||||||
|
F82
|
||||||
|
N3
|
||||||
|
F73
|
||||||
|
N4
|
||||||
|
F57
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
F26
|
||||||
|
N4
|
||||||
|
E5
|
||||||
|
N4
|
||||||
|
F48
|
||||||
|
R90
|
||||||
|
F62
|
||||||
|
R90
|
||||||
|
F36
|
||||||
|
E1
|
||||||
|
F76
|
||||||
|
R90
|
||||||
|
N3
|
||||||
|
F83
|
||||||
|
E5
|
||||||
|
L90
|
||||||
|
S1
|
||||||
|
F1
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
F67
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
F42
|
||||||
|
E4
|
||||||
|
S2
|
||||||
|
L180
|
||||||
|
F89
|
||||||
|
N1
|
||||||
|
E4
|
||||||
|
S4
|
||||||
|
W1
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
F91
|
||||||
|
R90
|
||||||
|
F78
|
||||||
|
N5
|
||||||
|
F29
|
||||||
|
W2
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
E2
|
||||||
|
F40
|
||||||
|
E2
|
||||||
|
F76
|
||||||
|
R90
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
S1
|
||||||
|
W3
|
||||||
|
N4
|
||||||
|
F81
|
||||||
|
W4
|
||||||
|
F22
|
||||||
|
N1
|
||||||
|
W1
|
||||||
|
F47
|
||||||
|
E3
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
F44
|
||||||
|
L90
|
||||||
|
F58
|
||||||
|
S1
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
F91
|
||||||
|
N1
|
||||||
|
W4
|
||||||
|
N5
|
||||||
|
L90
|
||||||
|
F60
|
||||||
|
F8
|
||||||
|
S4
|
||||||
|
F17
|
||||||
|
E5
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
F37
|
||||||
|
L180
|
||||||
|
W4
|
||||||
|
L180
|
||||||
|
W4
|
||||||
|
F93
|
||||||
|
S5
|
||||||
|
F71
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
E3
|
||||||
|
F20
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
E5
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
R180
|
||||||
|
S5
|
||||||
|
L90
|
||||||
|
F26
|
||||||
|
E4
|
||||||
|
F49
|
||||||
|
E5
|
||||||
|
S4
|
||||||
|
E4
|
||||||
|
N1
|
||||||
|
L180
|
||||||
|
F33
|
||||||
|
E1
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
E5
|
||||||
|
N5
|
||||||
|
L180
|
||||||
|
F60
|
||||||
|
S1
|
||||||
|
F53
|
||||||
|
W1
|
||||||
|
F34
|
||||||
|
E2
|
||||||
|
N3
|
||||||
|
E2
|
||||||
|
S5
|
||||||
|
F61
|
||||||
|
F32
|
||||||
|
F18
|
||||||
|
L90
|
||||||
|
W4
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
F26
|
||||||
|
S3
|
||||||
|
W4
|
||||||
|
S5
|
||||||
|
E5
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
E2
|
||||||
|
R90
|
||||||
|
N2
|
||||||
|
S3
|
||||||
|
L90
|
||||||
|
S3
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
F31
|
||||||
|
R180
|
||||||
|
E2
|
||||||
|
F42
|
||||||
|
R90
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
S3
|
||||||
|
F79
|
||||||
|
R90
|
||||||
|
F76
|
||||||
|
W1
|
||||||
|
F9
|
||||||
|
N1
|
||||||
|
F91
|
||||||
|
R90
|
||||||
|
N3
|
||||||
|
F32
|
||||||
|
L180
|
||||||
|
N4
|
||||||
|
W2
|
||||||
|
F18
|
||||||
|
N5
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
L180
|
||||||
|
F22
|
||||||
|
E4
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
W5
|
||||||
|
F31
|
||||||
|
L180
|
||||||
|
E1
|
||||||
|
F15
|
||||||
|
W1
|
||||||
|
S5
|
||||||
|
E4
|
||||||
|
F56
|
||||||
|
L90
|
||||||
|
F7
|
||||||
|
S3
|
||||||
|
E4
|
||||||
|
F13
|
||||||
|
R90
|
||||||
|
S4
|
||||||
|
F78
|
||||||
|
R180
|
||||||
|
E3
|
||||||
|
N1
|
||||||
|
R90
|
||||||
|
W4
|
||||||
|
F29
|
||||||
|
S4
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
W4
|
||||||
|
L180
|
||||||
|
F6
|
||||||
|
F84
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
F29
|
||||||
|
E2
|
||||||
|
F75
|
||||||
|
E3
|
||||||
|
N4
|
||||||
|
F33
|
||||||
|
L270
|
||||||
|
S4
|
||||||
|
F62
|
||||||
|
E2
|
||||||
|
N4
|
||||||
|
F50
|
||||||
|
E1
|
||||||
|
E2
|
||||||
|
L270
|
||||||
|
F100
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
F89
|
||||||
|
N2
|
||||||
|
W3
|
||||||
|
F5
|
||||||
|
E5
|
||||||
|
N2
|
||||||
|
F75
|
||||||
|
S3
|
||||||
|
F2
|
||||||
|
S4
|
||||||
|
W3
|
||||||
|
F33
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
E5
|
||||||
|
F20
|
||||||
|
S1
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
F10
|
||||||
|
W5
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
E1
|
||||||
|
S3
|
||||||
|
F41
|
||||||
|
E5
|
||||||
|
L90
|
||||||
|
F28
|
||||||
|
S2
|
||||||
|
F40
|
||||||
|
S2
|
||||||
|
S4
|
||||||
|
N1
|
||||||
|
F15
|
||||||
|
W5
|
||||||
|
W2
|
||||||
|
R270
|
||||||
|
E5
|
||||||
|
R90
|
||||||
|
E4
|
||||||
|
F50
|
||||||
|
R90
|
||||||
|
S4
|
||||||
|
E1
|
||||||
|
N4
|
||||||
|
F73
|
||||||
|
L90
|
||||||
|
W2
|
||||||
|
L270
|
||||||
|
E4
|
||||||
|
S1
|
||||||
|
F30
|
||||||
|
S3
|
||||||
|
W4
|
||||||
|
L180
|
||||||
|
W4
|
||||||
|
F6
|
||||||
|
R90
|
||||||
|
F43
|
||||||
|
N5
|
||||||
|
W3
|
||||||
|
W3
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
F50
|
||||||
|
W2
|
||||||
|
S4
|
||||||
|
L90
|
||||||
|
L180
|
||||||
|
W1
|
||||||
|
L270
|
||||||
|
E3
|
||||||
|
N2
|
||||||
|
E2
|
||||||
|
F48
|
||||||
|
W1
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
F86
|
||||||
|
L180
|
||||||
|
F10
|
||||||
|
S1
|
||||||
|
F36
|
||||||
|
S4
|
||||||
|
F33
|
||||||
|
N5
|
||||||
|
L90
|
||||||
|
F14
|
||||||
|
S2
|
||||||
|
E4
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
W2
|
||||||
|
N2
|
||||||
|
L180
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
S1
|
||||||
|
F82
|
||||||
|
W1
|
||||||
|
S1
|
||||||
|
F19
|
||||||
|
E3
|
||||||
|
F19
|
||||||
|
S2
|
||||||
|
W1
|
||||||
|
F18
|
||||||
|
L90
|
||||||
|
F43
|
||||||
|
W1
|
||||||
|
N2
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
S1
|
||||||
|
F75
|
||||||
|
L90
|
||||||
|
E4
|
||||||
|
F80
|
||||||
|
N5
|
||||||
|
F15
|
||||||
|
F53
|
||||||
|
N4
|
||||||
|
E5
|
||||||
|
L90
|
||||||
|
E1
|
||||||
|
W5
|
||||||
|
R270
|
||||||
|
F17
|
||||||
|
F63
|
||||||
|
W2
|
||||||
|
F20
|
||||||
|
E1
|
||||||
|
S3
|
||||||
|
F19
|
||||||
|
E1
|
||||||
|
F99
|
||||||
|
S1
|
||||||
|
W1
|
||||||
|
F23
|
||||||
|
L180
|
||||||
|
S3
|
||||||
|
W4
|
||||||
|
F76
|
3
2020/inputs/day13.input
Normal file
3
2020/inputs/day13.input
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
1001171
|
||||||
|
17,x,x,x,x,x,x,41,x,x,x,37,x,x,x,x,x,367,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,19,x,x,x,23,x,x,x,x,x,29,x,613,x,x,x,x,x,x,x,x,x,x,x,x,13
|
||||||
|
|
556
2020/inputs/day14.input
Normal file
556
2020/inputs/day14.input
Normal file
|
@ -0,0 +1,556 @@
|
||||||
|
mask = 00X1011010111X01X1X010X01X1111X11100
|
||||||
|
mem[13879] = 56974
|
||||||
|
mem[26072] = 842
|
||||||
|
mem[47322] = 62104110
|
||||||
|
mem[31450] = 372784
|
||||||
|
mem[54364] = 2818920
|
||||||
|
mask = 01000X10101XX0011000X00XXX00101X0101
|
||||||
|
mem[13358] = 73976240
|
||||||
|
mem[41121] = 3647124
|
||||||
|
mask = 010000X01111X0011000X01010X1001100X0
|
||||||
|
mem[49893] = 63539
|
||||||
|
mem[63669] = 79316429
|
||||||
|
mem[19136] = 256
|
||||||
|
mem[1117] = 1244
|
||||||
|
mem[56655] = 267815
|
||||||
|
mem[22811] = 142
|
||||||
|
mask = 0101011010111X0111X010110000XXX1010X
|
||||||
|
mem[40297] = 21028792
|
||||||
|
mem[16007] = 950419537
|
||||||
|
mem[40907] = 2010
|
||||||
|
mem[27377] = 525
|
||||||
|
mem[0] = 209
|
||||||
|
mem[41317] = 2312973
|
||||||
|
mem[4641] = 1227100
|
||||||
|
mask = X0X000101X111001110X011X1X1010X10100
|
||||||
|
mem[24322] = 103589922
|
||||||
|
mem[2572] = 1231
|
||||||
|
mem[53327] = 814998856
|
||||||
|
mem[30460] = 25015
|
||||||
|
mask = 00000010XX101X11X0110100X0X001X010X1
|
||||||
|
mem[50914] = 37339
|
||||||
|
mem[50218] = 5021282
|
||||||
|
mask = 0X0X00X01XX0110X1101X0X010000110X101
|
||||||
|
mem[3780] = 51750101
|
||||||
|
mem[8561] = 638
|
||||||
|
mem[64747] = 215
|
||||||
|
mem[51358] = 194347939
|
||||||
|
mem[29912] = 9717
|
||||||
|
mem[44684] = 418165
|
||||||
|
mask = 0X0X00101011XXX11100001X0101X01101XX
|
||||||
|
mem[1418] = 81827528
|
||||||
|
mem[38228] = 399582
|
||||||
|
mem[57488] = 7003
|
||||||
|
mem[22080] = 112130
|
||||||
|
mem[29467] = 2198074
|
||||||
|
mem[32800] = 35048851
|
||||||
|
mask = 010X00001011100111X0001X0100011010X1
|
||||||
|
mem[16589] = 1922920
|
||||||
|
mem[31011] = 88738170
|
||||||
|
mem[35178] = 4791
|
||||||
|
mem[17792] = 5560
|
||||||
|
mem[50656] = 1695
|
||||||
|
mem[22720] = 1584409
|
||||||
|
mem[54364] = 1486
|
||||||
|
mask = 01XX011010X110XXX1X001010X01000X1011
|
||||||
|
mem[19230] = 13477
|
||||||
|
mem[41397] = 781359
|
||||||
|
mem[11599] = 7687201
|
||||||
|
mem[2817] = 26775
|
||||||
|
mask = X10001XX1000100X1X00001X01X100011100
|
||||||
|
mem[288] = 1886
|
||||||
|
mem[32911] = 326403
|
||||||
|
mem[48084] = 66681
|
||||||
|
mask = 00001000X011110X11011000X0X000XX10X1
|
||||||
|
mem[41020] = 3202
|
||||||
|
mem[21434] = 5634478
|
||||||
|
mask = 00X0XX001011X0X1X10X100001110111X011
|
||||||
|
mem[33545] = 1876
|
||||||
|
mem[28976] = 581977039
|
||||||
|
mask = 0X11011010111101011000X1101X000X1110
|
||||||
|
mem[19071] = 770610413
|
||||||
|
mem[20064] = 1694
|
||||||
|
mem[43482] = 2871
|
||||||
|
mem[46365] = 3148234
|
||||||
|
mem[52059] = 3513
|
||||||
|
mem[18760] = 1548
|
||||||
|
mem[61977] = 605
|
||||||
|
mask = 010X01XX1X11100X11001X10X10110000001
|
||||||
|
mem[53801] = 111695
|
||||||
|
mem[11683] = 168184
|
||||||
|
mem[20469] = 1949
|
||||||
|
mask = X1010110X01111011100X010000XX0000000
|
||||||
|
mem[55872] = 2261951
|
||||||
|
mem[13140] = 15964
|
||||||
|
mem[45204] = 22572
|
||||||
|
mask = X10X0000XX111X01100011X11X1100101101
|
||||||
|
mem[56655] = 124863920
|
||||||
|
mem[32800] = 20227
|
||||||
|
mem[58864] = 42605725
|
||||||
|
mem[59474] = 859
|
||||||
|
mem[59729] = 141193
|
||||||
|
mem[18342] = 1631
|
||||||
|
mask = 01100XX01011100111X00010XX01X0XX010X
|
||||||
|
mem[13572] = 3383121
|
||||||
|
mem[32800] = 25726954
|
||||||
|
mem[54193] = 54397
|
||||||
|
mem[3305] = 251510
|
||||||
|
mem[52294] = 33972
|
||||||
|
mask = 0100X0XX10XX11X11101001010X1X110X100
|
||||||
|
mem[3991] = 3201095
|
||||||
|
mem[19248] = 1173
|
||||||
|
mem[17507] = 684436
|
||||||
|
mem[37324] = 694
|
||||||
|
mem[11150] = 44468495
|
||||||
|
mem[16853] = 3978967
|
||||||
|
mem[10293] = 3552
|
||||||
|
mask = X0X00000X01010011011011X1000X01XX001
|
||||||
|
mem[54689] = 1224
|
||||||
|
mem[36536] = 33407636
|
||||||
|
mem[22811] = 296513
|
||||||
|
mem[58491] = 109654
|
||||||
|
mask = 010XX1111011000X1000X1000100X00011X0
|
||||||
|
mem[20982] = 1468
|
||||||
|
mem[15854] = 13972
|
||||||
|
mem[55563] = 121451
|
||||||
|
mem[28871] = 732
|
||||||
|
mask = 00100X100001000001001101XX100X10XX10
|
||||||
|
mem[37549] = 11144610
|
||||||
|
mem[58939] = 280786876
|
||||||
|
mem[38833] = 1473210
|
||||||
|
mem[44075] = 571
|
||||||
|
mem[21698] = 5427778
|
||||||
|
mem[35937] = 544693
|
||||||
|
mask = 0100011010111XX10X00011011X010110110
|
||||||
|
mem[63719] = 36151477
|
||||||
|
mem[43205] = 79985
|
||||||
|
mem[9431] = 23613381
|
||||||
|
mem[38228] = 93679
|
||||||
|
mem[45544] = 946568
|
||||||
|
mask = 0X000000101010011101110X11001000XX00
|
||||||
|
mem[2730] = 8086855
|
||||||
|
mem[50422] = 3607
|
||||||
|
mem[9544] = 3738
|
||||||
|
mask = 0X0XXXX010X1100111100010000001010010
|
||||||
|
mem[17216] = 2231300
|
||||||
|
mem[40965] = 30453
|
||||||
|
mem[43536] = 1780
|
||||||
|
mem[26440] = 712936
|
||||||
|
mem[26845] = 445304638
|
||||||
|
mask = 01X000X1X0101001101111X1000X0001X0XX
|
||||||
|
mem[34736] = 35
|
||||||
|
mem[23584] = 62941351
|
||||||
|
mask = 01X000XX1110XX11XX10010000010X00X110
|
||||||
|
mem[35014] = 2725
|
||||||
|
mem[31317] = 3
|
||||||
|
mask = 000XX0XX101010X1X0X111X0100001100001
|
||||||
|
mem[372] = 21946096
|
||||||
|
mem[10488] = 41777407
|
||||||
|
mem[23528] = 1708407
|
||||||
|
mem[60206] = 182569990
|
||||||
|
mem[44075] = 816675
|
||||||
|
mem[43028] = 618865
|
||||||
|
mask = 0X00X000101X1X01110XX01XX0000011X001
|
||||||
|
mem[955] = 17506
|
||||||
|
mem[41317] = 3162029
|
||||||
|
mem[37] = 9168685
|
||||||
|
mem[24435] = 33494
|
||||||
|
mem[10291] = 901681
|
||||||
|
mem[26688] = 23163
|
||||||
|
mask = 0100100110X111011XX10010101101101X00
|
||||||
|
mem[53694] = 184478
|
||||||
|
mem[38156] = 140154654
|
||||||
|
mem[3645] = 99833620
|
||||||
|
mem[5194] = 7438
|
||||||
|
mem[13132] = 187583
|
||||||
|
mem[10626] = 213169401
|
||||||
|
mask = 0X00X11X1011000X100000XXX0001010XX11
|
||||||
|
mem[58468] = 3932
|
||||||
|
mem[47108] = 13422709
|
||||||
|
mem[20791] = 25670347
|
||||||
|
mask = 0100010010111000110000X1X11111X0X100
|
||||||
|
mem[64332] = 58063181
|
||||||
|
mem[20791] = 97103200
|
||||||
|
mem[21178] = 704
|
||||||
|
mask = 010X000010101X0X11X111001100X1X011XX
|
||||||
|
mem[29912] = 96861
|
||||||
|
mem[11661] = 15933204
|
||||||
|
mem[31973] = 1597059
|
||||||
|
mask = 010X0010001XX001110011X0000X00101110
|
||||||
|
mem[54377] = 929
|
||||||
|
mem[1578] = 1628469
|
||||||
|
mem[9066] = 1039223
|
||||||
|
mem[54819] = 131459054
|
||||||
|
mem[59746] = 97979749
|
||||||
|
mem[21742] = 919
|
||||||
|
mask = 010X000010111X011110X100X00X0000X00X
|
||||||
|
mem[25877] = 1030474
|
||||||
|
mem[40848] = 441
|
||||||
|
mem[19136] = 40
|
||||||
|
mem[41305] = 509818516
|
||||||
|
mask = 11010011XX111011110X111011X11X00X100
|
||||||
|
mem[56916] = 23553145
|
||||||
|
mem[43067] = 120593523
|
||||||
|
mem[41993] = 121958
|
||||||
|
mem[16589] = 469
|
||||||
|
mask = 00000XX0101111011101X1011XX1001XXXX0
|
||||||
|
mem[44363] = 1739
|
||||||
|
mem[15915] = 49544
|
||||||
|
mem[5729] = 173493396
|
||||||
|
mem[29213] = 41122
|
||||||
|
mem[50656] = 1531
|
||||||
|
mask = 0X010X1010111X0111000X1XX10100X101XX
|
||||||
|
mem[58111] = 1227
|
||||||
|
mem[45142] = 3293
|
||||||
|
mem[30952] = 2965075
|
||||||
|
mem[25181] = 578696
|
||||||
|
mem[50656] = 60702685
|
||||||
|
mask = 0111011010111XX10100X100110101000X1X
|
||||||
|
mem[59881] = 82070
|
||||||
|
mem[60524] = 62394
|
||||||
|
mem[35663] = 1981
|
||||||
|
mem[27322] = 216531615
|
||||||
|
mem[8965] = 14469
|
||||||
|
mem[13388] = 1148662
|
||||||
|
mem[13342] = 92607190
|
||||||
|
mask = X1000XX110X0111XXX010010X00101110101
|
||||||
|
mem[2228] = 40376
|
||||||
|
mem[64755] = 1327525
|
||||||
|
mask = 11010010X0XX10X11X0X1X011001101X110X
|
||||||
|
mem[15280] = 2364003
|
||||||
|
mem[19478] = 72063090
|
||||||
|
mem[8497] = 28240
|
||||||
|
mem[45678] = 2811
|
||||||
|
mem[52231] = 39955
|
||||||
|
mask = 0X001111X011000010X01011X1000XX00X11
|
||||||
|
mem[24827] = 1639
|
||||||
|
mem[13879] = 119218
|
||||||
|
mem[17610] = 6101768
|
||||||
|
mem[48448] = 3972
|
||||||
|
mask = XX0000X0X11110X110001111011X00010101
|
||||||
|
mem[65388] = 9968
|
||||||
|
mem[26462] = 45065510
|
||||||
|
mem[27496] = 70270
|
||||||
|
mask = 01010X1X111X1001101X101X0XX000000001
|
||||||
|
mem[10134] = 755
|
||||||
|
mem[34940] = 3959699
|
||||||
|
mem[26321] = 156
|
||||||
|
mem[63789] = 36543477
|
||||||
|
mask = X10X001010111001X1000100001XX00X101X
|
||||||
|
mem[59095] = 888920
|
||||||
|
mem[26072] = 189525541
|
||||||
|
mem[41506] = 78022
|
||||||
|
mask = 01X000101X1X10X11010X1X010X1010X011X
|
||||||
|
mem[19618] = 43629
|
||||||
|
mem[16853] = 176218496
|
||||||
|
mem[27558] = 9383
|
||||||
|
mask = 000000X01011101111001XX00000X0000110
|
||||||
|
mem[47738] = 782
|
||||||
|
mem[9654] = 14755
|
||||||
|
mask = 01X0X0001X01X101110X00000000000X0101
|
||||||
|
mem[21742] = 34626297
|
||||||
|
mem[10621] = 1418350
|
||||||
|
mem[45805] = 3784031
|
||||||
|
mask = 01XX01001011101X010X001001X1010X0100
|
||||||
|
mem[18511] = 458
|
||||||
|
mem[4597] = 8053
|
||||||
|
mem[34914] = 902
|
||||||
|
mem[11895] = 2319205
|
||||||
|
mem[54291] = 7059674
|
||||||
|
mem[60178] = 1495
|
||||||
|
mem[64432] = 22061
|
||||||
|
mask = 1X110010001110011X0X01100X1XX0X01XX0
|
||||||
|
mem[9055] = 462699
|
||||||
|
mem[35882] = 554265333
|
||||||
|
mem[50939] = 52443722
|
||||||
|
mem[20552] = 160408413
|
||||||
|
mask = 0100010010111001X100000X01X1001001X1
|
||||||
|
mem[28976] = 404
|
||||||
|
mem[64843] = 813
|
||||||
|
mem[57066] = 899
|
||||||
|
mem[16179] = 3033125
|
||||||
|
mask = X101X01X101110X1110011X0X00010X01001
|
||||||
|
mem[63922] = 122921015
|
||||||
|
mem[47325] = 66631
|
||||||
|
mem[34914] = 122827
|
||||||
|
mem[41369] = 723416
|
||||||
|
mem[26321] = 350572
|
||||||
|
mem[10260] = 11917171
|
||||||
|
mem[20396] = 112670
|
||||||
|
mask = 00X100101011100111XX010X011X0XX001XX
|
||||||
|
mem[11150] = 875126074
|
||||||
|
mem[28760] = 25307778
|
||||||
|
mem[14951] = 445519
|
||||||
|
mem[54291] = 394307
|
||||||
|
mem[19109] = 15584261
|
||||||
|
mem[8221] = 524
|
||||||
|
mask = 01000XX011111001100000001101X111X101
|
||||||
|
mem[58015] = 18497
|
||||||
|
mem[63992] = 530980167
|
||||||
|
mem[26915] = 14357281
|
||||||
|
mem[42401] = 12123838
|
||||||
|
mem[65275] = 14601815
|
||||||
|
mask = 010X00X0100011X011010010X00XX100010X
|
||||||
|
mem[49005] = 39006890
|
||||||
|
mem[121] = 119847895
|
||||||
|
mem[16179] = 737050
|
||||||
|
mem[52215] = 11770
|
||||||
|
mask = 010XX0001X10X101110XX10X00000X100111
|
||||||
|
mem[40066] = 1188
|
||||||
|
mem[27727] = 10855
|
||||||
|
mem[47207] = 113852179
|
||||||
|
mask = 0X10011XX01X1011110000011X11X0XX101X
|
||||||
|
mem[27558] = 1280
|
||||||
|
mem[18441] = 312
|
||||||
|
mem[22675] = 2746277
|
||||||
|
mem[54987] = 120268
|
||||||
|
mask = 1101XX1010111X011XX01XX0110000001110
|
||||||
|
mem[8285] = 6819893
|
||||||
|
mem[56655] = 10287
|
||||||
|
mem[39027] = 158
|
||||||
|
mem[25922] = 2798
|
||||||
|
mem[22261] = 36850389
|
||||||
|
mem[46394] = 48894888
|
||||||
|
mask = X1X10010X011100111001000XX100X1X1X00
|
||||||
|
mem[24614] = 1802
|
||||||
|
mem[13232] = 499261
|
||||||
|
mask = 01XX0X1010111XX11100X011010100X0X101
|
||||||
|
mem[63992] = 12600674
|
||||||
|
mem[56655] = 99142656
|
||||||
|
mem[9273] = 302251593
|
||||||
|
mask = XX000XXX1011101111XX0010000100111X00
|
||||||
|
mem[18088] = 20379649
|
||||||
|
mem[47508] = 111520085
|
||||||
|
mem[38545] = 90881967
|
||||||
|
mem[21514] = 16333
|
||||||
|
mem[35731] = 816238944
|
||||||
|
mask = 110111101X11X1011010X10010000111101X
|
||||||
|
mem[13890] = 4842901
|
||||||
|
mem[23610] = 19829
|
||||||
|
mem[21900] = 31928769
|
||||||
|
mem[10595] = 228191
|
||||||
|
mem[13375] = 24467
|
||||||
|
mem[45544] = 149815
|
||||||
|
mask = 010XX1X0101X100X110X1111010X1100X10X
|
||||||
|
mem[13358] = 7851
|
||||||
|
mem[18277] = 1322
|
||||||
|
mem[24517] = 6165
|
||||||
|
mem[19856] = 93677767
|
||||||
|
mask = 010X0110101XX0011100X000X00000100111
|
||||||
|
mem[60820] = 549270
|
||||||
|
mem[42355] = 609632
|
||||||
|
mem[35546] = 241510
|
||||||
|
mem[59340] = 57067
|
||||||
|
mask = 010X00X0X0101X001X01111011X00XX01010
|
||||||
|
mem[58491] = 456443643
|
||||||
|
mem[49058] = 86242
|
||||||
|
mem[24702] = 25105
|
||||||
|
mem[35001] = 88082598
|
||||||
|
mem[36988] = 23981732
|
||||||
|
mem[54815] = 19064841
|
||||||
|
mem[52231] = 329
|
||||||
|
mask = 0XX0001X11101XX011X1X1000000110111X1
|
||||||
|
mem[7504] = 475530227
|
||||||
|
mem[29138] = 11235
|
||||||
|
mem[56376] = 76699622
|
||||||
|
mask = 0011XXX01011100X1110X111011XX1110X00
|
||||||
|
mem[52184] = 60066
|
||||||
|
mem[64705] = 2343316
|
||||||
|
mem[43172] = 28305258
|
||||||
|
mem[5362] = 2133
|
||||||
|
mem[38763] = 2754100
|
||||||
|
mem[52032] = 7390
|
||||||
|
mem[2572] = 19579691
|
||||||
|
mask = 010XX00010101001101X111X000101110011
|
||||||
|
mem[29623] = 24098
|
||||||
|
mem[8946] = 24951998
|
||||||
|
mem[11382] = 184167
|
||||||
|
mem[47522] = 6393093
|
||||||
|
mask = XX01001010X11X011110X000XX000100X0X1
|
||||||
|
mem[10260] = 661
|
||||||
|
mem[25012] = 11390
|
||||||
|
mask = 0100001010001101110101100XX110X01XX1
|
||||||
|
mem[9055] = 297216
|
||||||
|
mem[49887] = 26800
|
||||||
|
mem[18511] = 3731
|
||||||
|
mem[26845] = 42990
|
||||||
|
mask = 00X0X00010101X1X1001100011X001100001
|
||||||
|
mem[19591] = 197388201
|
||||||
|
mem[51460] = 1032
|
||||||
|
mem[9600] = 934060
|
||||||
|
mem[58791] = 1646732
|
||||||
|
mem[50283] = 1235563
|
||||||
|
mem[26455] = 5018620
|
||||||
|
mem[288] = 481559
|
||||||
|
mask = 010X001010110X0X1X001111000XX010011X
|
||||||
|
mem[13491] = 1626583
|
||||||
|
mem[36536] = 239
|
||||||
|
mem[56224] = 9125
|
||||||
|
mem[28105] = 22015873
|
||||||
|
mem[44531] = 8125
|
||||||
|
mem[18760] = 25964
|
||||||
|
mask = X101000011111X011110100011000X010X0X
|
||||||
|
mem[58864] = 709865577
|
||||||
|
mem[32976] = 303129
|
||||||
|
mem[44109] = 8025520
|
||||||
|
mem[51706] = 3030478
|
||||||
|
mask = 00X01X0010101X0X1X011X110000X10101X1
|
||||||
|
mem[53349] = 146801393
|
||||||
|
mem[372] = 27164788
|
||||||
|
mask = 0X00000010101X011XX11110X000XX1X0001
|
||||||
|
mem[27091] = 1227
|
||||||
|
mem[3194] = 234
|
||||||
|
mem[37] = 4066397
|
||||||
|
mem[43559] = 17240
|
||||||
|
mem[36904] = 23282
|
||||||
|
mem[9186] = 622901569
|
||||||
|
mem[58468] = 208767
|
||||||
|
mask = 00XX00X010X11101X101111001110100101X
|
||||||
|
mem[9251] = 230
|
||||||
|
mem[61367] = 78432672
|
||||||
|
mem[37478] = 2594
|
||||||
|
mem[64797] = 71052818
|
||||||
|
mem[30018] = 11711518
|
||||||
|
mem[20324] = 64836
|
||||||
|
mem[61185] = 1433
|
||||||
|
mask = 010000X0101X11001101011001100XXX0010
|
||||||
|
mem[31581] = 232228
|
||||||
|
mem[51766] = 13503
|
||||||
|
mem[46129] = 1071
|
||||||
|
mem[27845] = 3969749
|
||||||
|
mem[17643] = 282089
|
||||||
|
mem[60524] = 10654
|
||||||
|
mask = 010X00X01X1110011XX01010XX00X0X10101
|
||||||
|
mem[41317] = 20899132
|
||||||
|
mem[17792] = 1949
|
||||||
|
mem[1117] = 4931
|
||||||
|
mem[21452] = 423952
|
||||||
|
mem[29912] = 36667871
|
||||||
|
mem[10260] = 15401611
|
||||||
|
mem[28642] = 2840753
|
||||||
|
mask = 000000X0101111011101XXXX000X001X01X1
|
||||||
|
mem[57488] = 297477423
|
||||||
|
mem[8228] = 240002
|
||||||
|
mem[45051] = 1209316
|
||||||
|
mem[65123] = 1339
|
||||||
|
mask = 0100000010101X001111X1011X0001X0X00X
|
||||||
|
mem[25750] = 10538421
|
||||||
|
mem[59160] = 13024648
|
||||||
|
mem[7581] = 521295867
|
||||||
|
mem[44127] = 10349
|
||||||
|
mem[20791] = 263486916
|
||||||
|
mem[58844] = 37364
|
||||||
|
mem[44165] = 213775351
|
||||||
|
mask = 010X0X0010XX10011100001X0X0X1X0001X1
|
||||||
|
mem[20221] = 7207
|
||||||
|
mem[2326] = 247233
|
||||||
|
mem[54001] = 1782454
|
||||||
|
mem[41112] = 61297
|
||||||
|
mem[45994] = 12285
|
||||||
|
mask = 00X00010X0X1001111000010X0X1001XX10X
|
||||||
|
mem[22080] = 50449
|
||||||
|
mem[32446] = 69686
|
||||||
|
mem[46129] = 6052251
|
||||||
|
mem[45810] = 6931
|
||||||
|
mem[2730] = 17348930
|
||||||
|
mem[25557] = 22866081
|
||||||
|
mem[53007] = 2662
|
||||||
|
mask = 00000X1010111X0111011X01000X10X0XX01
|
||||||
|
mem[26747] = 237030337
|
||||||
|
mem[47589] = 912076
|
||||||
|
mem[7333] = 105514
|
||||||
|
mem[62613] = 1442076
|
||||||
|
mem[293] = 1883
|
||||||
|
mask = X1001X1010101111110XX010100000100X01
|
||||||
|
mem[64864] = 522211793
|
||||||
|
mem[381] = 395572639
|
||||||
|
mem[39482] = 641
|
||||||
|
mem[47108] = 37814
|
||||||
|
mask = 00X00111101110111X001101001110XXX00X
|
||||||
|
mem[16554] = 1304638
|
||||||
|
mem[56666] = 189089562
|
||||||
|
mem[12934] = 138931
|
||||||
|
mem[63122] = 607569
|
||||||
|
mem[37147] = 131399848
|
||||||
|
mask = 0X1X11101XX11X0X11100111X100001111X0
|
||||||
|
mem[24256] = 156773
|
||||||
|
mem[14436] = 485469048
|
||||||
|
mem[20781] = 376
|
||||||
|
mem[23284] = 879110
|
||||||
|
mem[2582] = 42478
|
||||||
|
mem[39002] = 3578
|
||||||
|
mask = 0000XX0X101010011XX000X0000X01100X01
|
||||||
|
mem[40945] = 11048
|
||||||
|
mem[36114] = 13782606
|
||||||
|
mem[2325] = 185202507
|
||||||
|
mem[33715] = 4806448
|
||||||
|
mem[61649] = 3756998
|
||||||
|
mem[55852] = 117
|
||||||
|
mask = 01000000101X1011110010010XXX0XX11110
|
||||||
|
mem[5881] = 13440134
|
||||||
|
mem[22720] = 962895873
|
||||||
|
mem[25142] = 11785
|
||||||
|
mask = 0101011010111001010011100XX0011111XX
|
||||||
|
mem[586] = 209
|
||||||
|
mem[51207] = 145606
|
||||||
|
mem[21220] = 62604
|
||||||
|
mem[45100] = 34084913
|
||||||
|
mem[30986] = 310031
|
||||||
|
mem[56443] = 483530965
|
||||||
|
mask = 0000100000X1X10X11X1100010100X011001
|
||||||
|
mem[41487] = 38587945
|
||||||
|
mem[21434] = 249215427
|
||||||
|
mem[7230] = 111149021
|
||||||
|
mask = X101X010XXX1100101X0X10100100111111X
|
||||||
|
mem[40840] = 2606
|
||||||
|
mem[63190] = 2447
|
||||||
|
mem[60328] = 40915
|
||||||
|
mem[45620] = 13499
|
||||||
|
mask = 001X0010101110X1X1X0X11X0010X0X001X0
|
||||||
|
mem[62719] = 785
|
||||||
|
mem[19974] = 42859172
|
||||||
|
mem[51864] = 44741
|
||||||
|
mem[63056] = 27482866
|
||||||
|
mask = X0X1X0101011X001X100101100101XX1X000
|
||||||
|
mem[39205] = 10997188
|
||||||
|
mem[14100] = 29987320
|
||||||
|
mem[616] = 278639655
|
||||||
|
mask = 0100000X10101X011X1111000X00X0111000
|
||||||
|
mem[49278] = 610
|
||||||
|
mem[9321] = 333537
|
||||||
|
mem[22656] = 4066
|
||||||
|
mem[8228] = 2791399
|
||||||
|
mem[9251] = 3866
|
||||||
|
mask = X00100X01011100X1X0XX000111011X00011
|
||||||
|
mem[58260] = 459
|
||||||
|
mem[18311] = 40779317
|
||||||
|
mem[10291] = 3362
|
||||||
|
mem[16865] = 1236
|
||||||
|
mask = X100X000X010110111X0001100000001X011
|
||||||
|
mem[1826] = 108687499
|
||||||
|
mem[4087] = 243589
|
||||||
|
mem[47489] = 474492676
|
||||||
|
mem[4129] = 16244
|
||||||
|
mem[29617] = 819406
|
||||||
|
mem[43545] = 108512190
|
||||||
|
mask = 010X0XX0101110X1X100X01X000X0X110100
|
||||||
|
mem[57918] = 102433847
|
||||||
|
mem[33825] = 9
|
||||||
|
mem[372] = 230834
|
||||||
|
mem[19591] = 7380
|
||||||
|
mem[65409] = 98189
|
||||||
|
mem[36391] = 3033
|
||||||
|
mask = X101X000101111011000X10X100100100000
|
||||||
|
mem[54029] = 347451
|
||||||
|
mem[28001] = 82660784
|
||||||
|
mask = 01X0000010101001X1000000X0X000110101
|
||||||
|
mem[37266] = 1643
|
||||||
|
mem[52294] = 242323894
|
||||||
|
mem[40965] = 11451
|
||||||
|
mem[52532] = 1191041
|
||||||
|
mem[1994] = 1830445
|
||||||
|
mem[16066] = 694
|
||||||
|
mask = 0X100010X0X1XX0X01001X10X1100X110000
|
||||||
|
mem[60293] = 92656839
|
||||||
|
mem[8228] = 24889387
|
||||||
|
mem[13951] = 25158
|
1
2020/inputs/day15.input
Normal file
1
2020/inputs/day15.input
Normal file
|
@ -0,0 +1 @@
|
||||||
|
0,13,1,8,6,15
|
260
2020/inputs/day16.input
Normal file
260
2020/inputs/day16.input
Normal file
|
@ -0,0 +1,260 @@
|
||||||
|
departure location: 34-724 or 735-974
|
||||||
|
departure station: 40-521 or 534-950
|
||||||
|
departure platform: 40-329 or 353-973
|
||||||
|
departure track: 37-258 or 268-964
|
||||||
|
departure date: 32-650 or 665-964
|
||||||
|
departure time: 39-373 or 398-950
|
||||||
|
arrival location: 42-431 or 447-952
|
||||||
|
arrival station: 36-536 or 552-972
|
||||||
|
arrival platform: 45-666 or 678-952
|
||||||
|
arrival track: 49-836 or 852-952
|
||||||
|
class: 35-600 or 623-953
|
||||||
|
duration: 50-920 or 929-950
|
||||||
|
price: 35-853 or 870-973
|
||||||
|
route: 34-309 or 318-965
|
||||||
|
row: 42-267 or 292-962
|
||||||
|
seat: 46-632 or 642-954
|
||||||
|
train: 47-746 or 754-960
|
||||||
|
type: 32-406 or 423-963
|
||||||
|
wagon: 37-797 or 810-973
|
||||||
|
zone: 35-766 or 784-952
|
||||||
|
|
||||||
|
your ticket:
|
||||||
|
113,53,97,59,139,73,89,109,67,71,79,127,149,107,137,83,131,101,61,103
|
||||||
|
|
||||||
|
nearby tickets:
|
||||||
|
688,200,60,127,239,85,167,91,792,373,724,244,451,659,133,471,240,649,402,554
|
||||||
|
686,424,398,148,91,729,425,231,318,711,209,166,665,105,227,579,229,937,876,495
|
||||||
|
699,583,291,592,426,173,819,131,158,814,325,496,625,215,568,831,212,456,137,83
|
||||||
|
62,134,362,84,404,722,599,898,555,99,318,364,462,208,83,368,723,185,383,884
|
||||||
|
100,573,721,722,320,528,250,206,534,585,797,158,626,201,567,206,54,520,362,892
|
||||||
|
944,901,891,906,556,122,71,564,558,474,195,325,580,224,570,879,604,759,600,361
|
||||||
|
936,887,732,888,693,763,933,424,835,642,299,174,475,360,150,120,117,294,70,495
|
||||||
|
556,209,820,68,164,69,447,397,647,128,137,127,164,328,98,241,736,134,908,562
|
||||||
|
627,573,562,740,627,70,294,784,884,91,813,579,354,141,820,351,501,372,138,937
|
||||||
|
172,894,647,169,763,466,398,755,556,945,229,307,906,369,197,19,787,489,580,64
|
||||||
|
690,107,566,116,360,709,627,369,104,298,931,474,644,477,300,98,799,300,427,518
|
||||||
|
61,355,872,448,405,825,528,555,500,600,123,882,123,50,645,919,85,401,712,309
|
||||||
|
898,829,929,888,236,146,696,484,904,928,203,167,229,590,484,208,536,157,903,896
|
||||||
|
475,552,717,206,898,986,630,255,764,580,885,583,447,81,130,165,688,557,763,158
|
||||||
|
459,253,590,760,210,307,789,830,560,221,711,406,470,62,274,577,947,79,932,719
|
||||||
|
241,450,123,462,622,167,572,933,120,477,427,623,630,898,761,366,74,453,711,581
|
||||||
|
152,823,190,56,207,831,586,650,737,520,57,304,292,759,593,523,590,223,735,836
|
||||||
|
160,917,931,83,820,585,252,138,630,118,649,308,171,320,484,739,479,453,263,156
|
||||||
|
134,904,686,147,234,821,518,894,116,690,828,696,248,689,918,71,207,891,344,328
|
||||||
|
91,133,722,87,934,764,256,632,323,738,490,557,166,929,881,58,690,977,915,235
|
||||||
|
746,984,86,710,112,584,205,592,179,796,209,174,447,190,123,455,231,786,893,715
|
||||||
|
218,461,649,304,892,945,891,586,198,221,755,305,368,206,129,490,462,996,424,88
|
||||||
|
497,108,595,560,160,428,827,78,629,801,370,815,453,853,579,707,893,818,592,224
|
||||||
|
463,810,631,118,176,716,924,305,788,877,78,404,702,722,912,324,696,702,485,877
|
||||||
|
875,919,461,485,578,595,755,109,793,511,589,931,56,213,920,119,594,594,558,923
|
||||||
|
683,124,786,878,933,788,15,61,255,200,452,885,449,707,101,555,325,110,358,405
|
||||||
|
70,488,830,913,833,680,158,819,881,583,144,477,182,136,131,56,678,931,881,433
|
||||||
|
679,353,226,425,895,827,96,652,111,84,70,473,116,241,404,740,111,77,717,699
|
||||||
|
568,885,930,820,415,211,300,877,460,196,481,568,162,888,478,155,743,723,51,190
|
||||||
|
61,853,793,309,165,497,720,128,176,424,478,356,741,566,151,168,923,82,710,243
|
||||||
|
757,898,167,149,592,251,202,787,627,726,757,462,52,220,786,763,757,64,644,361
|
||||||
|
746,564,574,560,351,172,429,574,105,84,689,932,224,365,229,504,881,195,116,484
|
||||||
|
574,930,120,165,390,881,108,567,875,577,887,492,209,152,423,484,106,821,917,466
|
||||||
|
69,326,754,890,204,248,618,930,938,722,915,463,703,879,598,593,149,583,886,398
|
||||||
|
691,272,628,713,559,471,887,902,889,144,585,324,53,572,118,486,217,796,77,899
|
||||||
|
198,580,147,92,217,623,919,812,694,577,223,697,909,292,130,758,902,73,110,614
|
||||||
|
577,80,744,51,594,513,424,755,116,307,254,914,938,74,561,599,641,835,648,553
|
||||||
|
228,939,820,503,676,876,934,189,149,692,625,468,215,567,319,126,829,483,893,894
|
||||||
|
758,163,297,553,292,192,128,269,309,564,695,509,896,937,294,70,736,156,402,576
|
||||||
|
326,885,566,238,562,904,500,471,431,885,129,938,587,784,983,115,89,123,201,64
|
||||||
|
647,918,735,894,428,365,84,535,361,70,977,791,939,872,84,318,431,81,650,99
|
||||||
|
490,180,128,117,560,176,170,711,535,691,89,289,564,515,493,910,692,253,557,705
|
||||||
|
226,760,309,144,795,758,501,672,909,718,499,555,324,449,454,570,84,241,361,295
|
||||||
|
69,455,248,146,289,99,756,632,505,93,786,143,106,746,222,486,517,679,821,370
|
||||||
|
816,903,646,353,724,678,149,515,718,321,355,701,221,115,611,942,235,218,252,943
|
||||||
|
904,463,485,697,64,127,454,694,225,796,195,169,112,695,363,880,157,239,806,824
|
||||||
|
909,430,70,940,626,893,580,174,568,72,518,59,703,444,67,208,187,243,766,477
|
||||||
|
232,569,738,910,664,487,198,469,90,206,151,428,597,701,624,877,99,171,915,133
|
||||||
|
697,58,563,320,598,179,262,716,222,364,494,932,908,592,946,490,121,370,708,75
|
||||||
|
90,400,57,132,761,573,179,433,467,202,81,554,423,327,625,822,108,429,74,319
|
||||||
|
233,536,833,564,493,96,358,242,571,56,939,61,813,159,634,507,189,63,176,161
|
||||||
|
942,303,463,295,793,830,135,892,717,491,948,357,687,554,303,321,81,172,846,117
|
||||||
|
552,893,448,766,406,830,367,821,598,792,877,320,144,158,934,424,453,940,923,755
|
||||||
|
365,82,679,227,525,362,561,589,746,87,239,499,914,298,102,371,447,896,185,238
|
||||||
|
937,946,228,913,466,154,498,67,717,169,217,186,212,808,153,490,103,756,50,74
|
||||||
|
137,165,624,242,424,890,467,201,665,521,362,233,706,916,225,806,472,158,353,738
|
||||||
|
810,934,370,920,891,498,649,86,681,308,934,630,116,518,51,118,181,737,764,639
|
||||||
|
94,459,601,626,400,218,724,90,724,251,248,519,558,249,110,823,214,482,450,218
|
||||||
|
304,71,885,765,96,315,710,204,292,565,53,477,120,558,688,81,904,191,144,201
|
||||||
|
328,400,111,494,635,882,590,918,357,597,686,789,89,241,229,681,823,784,877,222
|
||||||
|
62,240,518,254,520,151,449,719,320,509,432,574,518,887,353,588,300,814,56,485
|
||||||
|
871,536,369,497,230,535,453,119,915,302,872,303,199,632,797,459,430,426,611,572
|
||||||
|
211,55,889,741,557,600,565,258,737,407,70,745,632,325,428,949,949,424,832,702
|
||||||
|
185,238,189,696,742,495,176,225,908,549,495,488,487,491,785,232,935,491,579,218
|
||||||
|
225,141,101,294,687,301,682,361,690,239,563,697,575,457,510,633,820,680,66,647
|
||||||
|
428,931,181,324,162,13,896,891,53,237,754,205,915,100,220,87,104,878,241,94
|
||||||
|
204,758,126,595,117,462,699,488,65,676,355,535,178,185,324,229,423,708,763,167
|
||||||
|
692,78,562,589,179,102,430,943,852,757,921,64,302,73,129,474,595,167,190,745
|
||||||
|
360,72,119,247,250,675,210,884,429,136,810,934,294,567,565,207,320,515,454,452
|
||||||
|
214,161,128,468,937,580,484,479,764,0,217,896,252,593,208,929,193,784,460,174
|
||||||
|
76,490,568,558,711,22,702,625,721,695,692,494,256,244,123,705,427,578,101,63
|
||||||
|
298,794,931,325,813,938,104,196,80,999,89,243,195,681,365,51,916,581,891,907
|
||||||
|
643,365,555,93,740,888,492,232,744,680,84,171,17,762,122,207,324,180,300,319
|
||||||
|
811,755,95,500,83,902,703,429,192,942,908,514,744,535,687,898,67,931,314,737
|
||||||
|
817,939,78,944,741,685,516,69,141,60,156,920,816,882,942,916,78,797,673,686
|
||||||
|
109,875,438,913,698,244,892,705,399,252,448,402,361,128,892,559,464,872,744,357
|
||||||
|
902,784,629,95,224,323,50,993,231,679,150,920,937,168,450,118,594,243,786,785
|
||||||
|
927,456,115,901,129,455,829,155,182,579,645,248,53,740,699,836,403,596,215,883
|
||||||
|
201,948,914,735,593,121,562,87,190,946,709,501,107,512,595,322,710,232,279,947
|
||||||
|
449,109,901,916,755,133,58,251,591,763,639,61,205,737,301,718,200,719,187,453
|
||||||
|
143,496,104,483,939,402,890,82,518,937,562,133,201,52,250,610,215,227,53,513
|
||||||
|
134,694,424,307,312,499,363,879,944,487,448,721,911,599,718,588,191,499,788,510
|
||||||
|
466,903,881,149,698,184,12,209,164,736,102,890,468,228,195,465,174,79,481,758
|
||||||
|
220,593,697,360,225,146,938,79,369,948,294,799,708,427,485,911,577,83,472,168
|
||||||
|
82,717,709,89,240,231,269,295,816,586,836,256,940,309,251,139,489,292,92,573
|
||||||
|
796,229,424,463,19,824,300,590,755,583,81,189,949,690,63,516,324,648,372,812
|
||||||
|
257,76,789,703,824,362,215,578,809,190,202,132,297,490,886,908,700,102,632,121
|
||||||
|
503,565,373,891,199,364,600,489,120,561,572,918,493,899,477,179,659,890,178,702
|
||||||
|
128,227,256,204,897,644,578,944,87,597,240,367,169,113,976,483,253,790,470,684
|
||||||
|
404,648,506,718,449,802,509,458,878,198,817,820,141,597,53,193,598,629,215,794
|
||||||
|
240,911,139,897,429,326,200,692,811,260,871,649,913,70,494,212,353,137,79,593
|
||||||
|
63,574,483,893,62,709,717,699,365,898,949,638,68,901,786,306,591,583,242,680
|
||||||
|
63,621,650,108,453,520,594,642,218,590,91,947,819,159,104,170,241,907,896,98
|
||||||
|
555,233,715,508,695,156,650,145,458,154,231,119,212,898,882,732,367,219,746,911
|
||||||
|
835,930,126,64,693,213,359,718,765,745,727,493,706,184,875,297,162,645,941,488
|
||||||
|
404,717,314,712,232,62,211,625,50,479,683,457,459,743,59,294,506,948,722,492
|
||||||
|
944,87,98,625,236,257,536,648,599,721,358,920,598,142,157,443,644,428,161,95
|
||||||
|
257,573,267,431,484,406,145,556,631,597,821,355,245,145,941,594,456,876,740,741
|
||||||
|
920,454,217,701,577,124,470,324,826,837,624,711,518,592,465,795,759,294,498,701
|
||||||
|
711,224,483,213,908,497,190,896,202,247,522,150,400,222,719,399,138,944,895,165
|
||||||
|
353,576,785,629,211,240,256,514,557,163,355,191,882,638,739,111,121,499,360,218
|
||||||
|
424,180,690,321,578,494,587,937,361,833,267,683,491,816,169,703,242,201,357,792
|
||||||
|
738,134,739,300,593,786,460,743,936,814,569,681,789,64,327,126,264,812,191,431
|
||||||
|
426,915,477,323,716,144,112,63,217,438,900,632,724,294,873,181,468,627,900,164
|
||||||
|
479,802,563,121,151,906,192,900,426,718,185,552,946,183,830,239,589,194,481,94
|
||||||
|
791,649,469,255,724,66,293,112,610,589,898,363,252,109,425,754,368,431,789,148
|
||||||
|
754,665,381,908,735,451,308,737,935,226,706,205,460,244,582,153,178,493,137,702
|
||||||
|
321,597,137,599,940,99,109,300,357,130,184,686,996,710,96,178,322,477,226,176
|
||||||
|
153,890,836,24,888,643,737,902,597,572,504,486,573,878,251,124,184,600,685,217
|
||||||
|
59,742,582,792,229,432,117,920,355,252,917,354,488,205,125,191,110,682,216,456
|
||||||
|
324,367,186,203,912,564,870,881,553,365,605,476,326,828,586,154,400,104,579,431
|
||||||
|
96,491,758,426,835,489,807,507,811,520,536,298,329,326,295,92,692,515,79,947
|
||||||
|
535,682,139,232,938,595,552,824,71,630,831,558,258,448,814,949,222,995,364,828
|
||||||
|
898,912,723,464,723,160,194,344,710,113,167,710,195,163,822,735,198,877,224,698
|
||||||
|
360,82,111,146,430,703,328,880,406,200,929,64,467,726,647,482,225,449,477,709
|
||||||
|
694,81,5,513,590,212,168,399,117,366,59,99,888,354,131,912,177,558,831,594
|
||||||
|
520,363,529,159,358,935,202,648,372,940,89,467,483,128,220,138,628,519,252,171
|
||||||
|
71,101,514,937,510,946,320,402,480,91,486,584,687,91,113,228,80,648,525,308
|
||||||
|
693,494,171,17,114,516,370,320,307,624,356,591,812,156,497,238,557,905,889,820
|
||||||
|
301,426,994,218,62,205,797,583,236,552,686,91,760,230,509,823,475,467,160,698
|
||||||
|
597,399,51,454,487,666,728,692,874,477,447,318,237,372,453,744,250,458,894,234
|
||||||
|
626,95,800,195,702,789,684,571,829,105,147,712,365,75,248,293,234,140,134,166
|
||||||
|
576,489,224,159,947,323,116,403,180,683,795,874,197,400,446,720,930,237,240,401
|
||||||
|
679,492,22,468,98,594,474,224,328,197,471,471,366,784,472,448,210,686,224,943
|
||||||
|
915,471,760,721,587,492,893,327,580,826,807,370,872,684,357,875,937,354,318,361
|
||||||
|
246,835,582,831,470,888,881,826,22,739,296,231,784,722,228,144,513,488,879,195
|
||||||
|
913,175,109,687,208,207,64,514,819,508,590,489,17,474,566,873,97,481,901,239
|
||||||
|
77,192,105,501,70,699,255,136,824,503,655,504,256,194,715,944,326,946,647,448
|
||||||
|
189,586,213,294,252,884,935,500,88,309,193,993,814,69,944,810,212,225,719,553
|
||||||
|
463,403,568,793,833,921,307,497,593,552,586,741,65,643,66,692,763,143,765,785
|
||||||
|
454,889,935,152,434,142,818,366,104,197,184,242,597,895,224,117,325,212,517,794
|
||||||
|
717,154,62,135,795,405,743,9,498,219,177,707,103,625,554,61,303,228,194,697
|
||||||
|
63,72,882,362,193,754,484,822,236,687,685,296,197,821,925,195,818,897,796,456
|
||||||
|
584,463,489,209,232,480,907,919,453,354,281,784,92,938,592,99,646,813,818,700
|
||||||
|
250,373,586,229,690,136,101,548,219,358,759,132,370,829,174,884,820,574,459,117
|
||||||
|
575,453,945,631,219,301,398,128,787,250,112,594,919,723,808,302,94,812,292,518
|
||||||
|
713,106,590,194,361,759,318,123,890,710,122,242,473,293,384,692,145,792,901,428
|
||||||
|
132,940,325,931,559,761,907,901,521,92,723,115,815,367,730,487,689,369,573,554
|
||||||
|
81,61,566,932,141,349,255,97,233,115,795,816,821,218,319,186,73,632,116,145
|
||||||
|
743,629,246,246,800,457,202,534,702,77,739,735,188,934,623,71,912,247,252,100
|
||||||
|
800,79,569,167,934,715,916,586,225,562,479,56,705,115,836,912,829,793,71,425
|
||||||
|
362,485,689,788,487,301,882,86,373,767,902,600,214,132,825,170,884,629,877,100
|
||||||
|
681,876,878,198,539,102,475,919,699,883,762,212,149,457,939,154,247,62,724,918
|
||||||
|
915,95,896,832,708,278,826,470,451,512,560,690,71,172,739,181,515,514,144,504
|
||||||
|
364,485,146,889,190,329,174,465,719,254,710,925,89,58,690,99,939,404,482,791
|
||||||
|
933,51,927,453,597,179,454,403,890,690,495,57,473,690,679,878,175,57,739,320
|
||||||
|
249,114,989,933,257,703,328,204,694,431,240,880,501,893,366,53,97,886,810,587
|
||||||
|
792,826,823,75,261,91,144,892,140,222,448,373,580,308,581,482,899,578,114,628
|
||||||
|
587,129,105,66,515,205,590,89,502,998,940,584,454,256,360,931,118,164,256,693
|
||||||
|
877,744,242,329,461,394,568,449,700,89,792,625,597,503,196,65,828,814,431,914
|
||||||
|
61,91,700,536,697,114,131,481,499,365,493,473,678,934,120,598,355,826,231,277
|
||||||
|
876,307,216,712,928,518,573,363,303,690,708,628,872,836,207,139,163,65,666,467
|
||||||
|
494,483,449,328,194,880,258,113,107,932,552,210,824,301,74,396,568,130,883,787
|
||||||
|
144,707,507,597,60,197,129,698,555,320,329,791,942,792,530,96,91,596,936,684
|
||||||
|
235,558,479,456,554,657,684,878,216,426,828,693,914,258,121,476,320,104,78,766
|
||||||
|
830,558,161,536,183,63,626,686,920,273,820,180,794,705,140,825,216,562,648,713
|
||||||
|
209,296,788,743,296,75,882,306,298,575,247,784,487,3,707,197,716,648,494,600
|
||||||
|
320,703,306,181,707,622,247,626,177,574,666,460,910,401,724,117,370,231,710,302
|
||||||
|
66,912,474,186,137,755,437,118,910,481,55,884,500,579,449,870,108,183,74,702
|
||||||
|
898,398,128,431,700,936,623,500,51,591,789,127,89,145,164,998,179,736,704,194
|
||||||
|
181,56,574,485,948,853,171,223,207,241,179,479,935,616,140,794,230,831,557,320
|
||||||
|
282,695,61,919,743,481,877,885,160,126,130,595,71,448,589,398,810,631,212,98
|
||||||
|
583,178,145,172,595,295,132,149,284,162,111,398,154,796,595,171,113,357,429,121
|
||||||
|
875,447,180,65,301,425,168,949,706,104,790,448,590,823,120,581,730,362,320,907
|
||||||
|
796,249,501,202,130,788,520,142,574,461,192,708,133,79,742,642,717,50,727,903
|
||||||
|
175,301,110,685,117,466,186,927,632,742,451,328,169,683,103,931,514,359,72,227
|
||||||
|
710,643,490,794,877,99,208,527,53,127,169,785,579,449,784,555,714,878,679,130
|
||||||
|
643,13,167,178,828,423,227,623,566,299,486,499,680,702,96,584,364,534,189,941
|
||||||
|
882,493,571,76,935,240,230,468,599,337,373,138,564,704,791,79,104,242,580,786
|
||||||
|
766,766,240,916,759,580,453,164,325,909,743,604,216,648,92,745,909,122,62,244
|
||||||
|
197,563,250,110,236,78,825,837,627,493,492,250,871,487,893,763,318,194,827,487
|
||||||
|
308,362,888,147,489,7,132,474,58,309,160,235,325,109,895,237,400,692,82,872
|
||||||
|
482,757,566,517,564,584,905,58,68,911,735,690,476,111,651,478,915,81,220,765
|
||||||
|
569,405,826,504,369,711,165,119,745,885,204,215,83,285,402,829,66,148,254,167
|
||||||
|
52,107,793,510,61,996,631,102,227,479,743,916,145,76,251,225,138,70,328,718
|
||||||
|
67,569,104,642,493,705,321,896,476,813,370,882,579,425,235,120,486,933,504,0
|
||||||
|
919,148,129,482,52,908,236,497,895,641,119,892,691,102,164,193,645,233,192,737
|
||||||
|
302,235,80,875,569,596,179,208,58,476,235,250,190,168,160,185,297,926,354,448
|
||||||
|
70,354,828,568,242,186,404,320,354,574,86,792,763,137,827,218,557,286,235,834
|
||||||
|
301,298,637,901,505,873,765,498,565,230,536,826,516,570,233,474,786,129,162,145
|
||||||
|
712,229,242,501,816,243,96,509,708,365,52,829,190,505,697,317,565,403,556,817
|
||||||
|
941,820,113,512,877,641,899,74,474,69,228,143,700,164,147,297,559,584,75,499
|
||||||
|
984,784,472,357,757,573,816,894,206,181,240,82,832,596,139,127,356,452,184,447
|
||||||
|
89,895,258,169,208,883,629,315,892,902,233,137,598,929,502,580,450,119,942,199
|
||||||
|
328,895,492,367,748,685,598,599,405,482,243,320,486,77,575,72,406,939,157,293
|
||||||
|
188,943,662,195,553,683,709,483,179,562,178,665,944,824,517,90,933,325,117,898
|
||||||
|
644,153,904,138,932,508,826,99,926,200,486,56,363,210,793,368,709,469,233,325
|
||||||
|
785,300,58,833,915,643,447,731,491,585,454,491,405,486,204,360,929,99,255,302
|
||||||
|
207,831,558,759,499,241,252,789,944,393,707,555,125,249,373,720,327,887,514,302
|
||||||
|
131,826,481,795,710,577,474,423,54,144,152,72,584,827,109,284,96,78,700,153
|
||||||
|
229,556,499,164,88,698,141,513,190,96,293,240,254,257,816,649,156,302,432,699
|
||||||
|
424,187,479,244,690,570,505,100,154,648,166,125,292,458,810,926,714,898,569,197
|
||||||
|
577,756,512,135,715,406,701,687,637,91,698,302,817,875,114,593,91,510,467,142
|
||||||
|
473,460,182,112,777,101,878,78,215,161,222,565,624,203,318,883,491,573,306,821
|
||||||
|
870,497,121,718,510,292,92,159,363,78,909,509,132,517,554,913,94,118,458,798
|
||||||
|
369,505,351,308,101,201,882,720,788,765,931,818,220,945,702,181,815,895,517,628
|
||||||
|
500,910,123,936,493,111,73,564,501,173,473,307,558,510,266,111,897,217,147,301
|
||||||
|
766,700,899,517,83,139,118,666,89,129,122,826,599,468,492,849,686,949,695,111
|
||||||
|
252,122,241,460,200,367,629,893,919,680,483,440,480,87,631,451,465,241,212,462
|
||||||
|
565,711,121,918,424,484,899,722,498,243,792,787,158,329,702,775,357,189,189,824
|
||||||
|
462,679,138,294,252,250,234,478,302,618,459,570,210,182,827,513,585,476,789,148
|
||||||
|
891,105,181,163,256,116,125,737,588,889,534,471,993,226,932,581,187,788,135,459
|
||||||
|
68,222,630,691,153,588,882,260,89,71,297,816,576,830,106,697,941,490,94,719
|
||||||
|
52,449,128,204,482,211,931,911,242,698,479,818,495,703,181,183,825,561,656,832
|
||||||
|
296,172,118,790,431,357,502,87,881,705,746,816,301,118,693,263,703,172,91,557
|
||||||
|
406,556,52,302,248,155,534,220,467,224,483,257,121,741,761,885,279,237,398,784
|
||||||
|
257,471,573,153,371,258,461,181,492,789,326,835,291,63,176,162,935,176,353,60
|
||||||
|
880,914,515,362,497,137,465,70,235,511,306,194,521,924,740,815,466,305,792,98
|
||||||
|
149,306,354,895,717,215,54,703,329,74,62,934,208,986,112,212,694,297,511,178
|
||||||
|
589,517,516,367,328,68,678,557,785,834,68,97,744,198,400,876,88,986,906,690
|
||||||
|
736,763,821,217,992,904,822,193,719,827,942,456,894,370,492,255,163,211,167,355
|
||||||
|
795,135,83,765,484,260,760,150,699,495,138,108,563,306,563,198,577,794,256,503
|
||||||
|
518,912,193,431,97,699,109,805,553,403,822,931,682,706,520,57,111,220,324,490
|
||||||
|
187,101,498,508,895,101,225,592,455,697,560,185,155,511,703,558,688,113,70,656
|
||||||
|
148,599,302,126,469,829,191,218,766,87,140,583,578,827,520,701,53,592,817,18
|
||||||
|
645,646,152,469,123,222,746,897,984,127,360,745,789,874,898,788,578,111,368,578
|
||||||
|
737,558,898,456,448,194,645,694,666,311,74,108,793,813,451,947,501,853,575,242
|
||||||
|
988,212,920,72,693,95,471,882,144,79,643,50,587,829,505,562,237,496,885,827
|
||||||
|
929,145,403,715,513,871,687,93,625,258,368,326,870,684,710,503,570,920,634,828
|
||||||
|
853,198,501,790,904,486,252,609,593,119,714,137,166,51,297,593,701,560,472,685
|
||||||
|
452,597,428,300,733,161,207,514,570,93,556,827,448,428,447,303,75,814,302,164
|
||||||
|
205,144,492,214,498,710,121,598,650,533,534,823,247,712,83,678,494,172,937,623
|
||||||
|
625,211,95,158,465,918,883,364,89,198,74,93,193,481,763,653,301,201,153,643
|
||||||
|
134,921,458,789,353,796,173,534,398,88,151,87,300,763,237,456,366,933,358,572
|
||||||
|
563,600,168,584,513,98,871,920,360,249,367,762,89,517,479,448,441,502,720,364
|
||||||
|
823,492,484,794,872,874,338,181,693,372,77,306,791,508,785,508,472,933,50,756
|
||||||
|
307,193,649,793,850,594,220,572,625,74,835,240,150,327,188,711,371,228,245,578
|
||||||
|
626,232,497,691,327,943,636,202,321,698,790,682,447,577,371,593,132,820,491,898
|
||||||
|
234,823,485,146,84,99,520,236,700,663,201,690,296,120,712,299,105,870,59,649
|
||||||
|
448,765,62,297,462,258,660,482,920,591,689,890,821,211,76,586,50,874,99,644
|
||||||
|
578,649,819,465,104,884,744,899,873,76,144,553,935,173,949,675,593,826,71,100
|
||||||
|
573,163,451,329,215,398,200,650,368,906,354,164,721,297,718,789,4,371,309,136
|
||||||
|
508,174,700,555,908,59,902,767,428,576,404,361,898,792,787,498,76,148,503,453
|
||||||
|
192,882,896,124,207,299,558,215,822,207,227,80,517,64,338,877,111,564,86,678
|
||||||
|
68,920,510,89,822,482,161,638,230,716,885,482,678,698,488,501,501,871,72,120
|
8
2020/inputs/day17.input
Normal file
8
2020/inputs/day17.input
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
###...#.
|
||||||
|
.##.####
|
||||||
|
.####.##
|
||||||
|
###.###.
|
||||||
|
.##.####
|
||||||
|
#.##..#.
|
||||||
|
##.####.
|
||||||
|
.####.#.
|
377
2020/inputs/day18.input
Normal file
377
2020/inputs/day18.input
Normal file
|
@ -0,0 +1,377 @@
|
||||||
|
9 * 8 + 2 + (4 * (2 * 2 + 9 * 2) * 9 * 3 * 8) + 8 * 5
|
||||||
|
8 * (9 + 5 + 5 * 6 + 8 * 3) * 5 * 7 * 4 + 9
|
||||||
|
(9 + (2 * 6 + 7 * 5)) * (7 + 7 * 5 + (6 + 2 + 6) * (7 * 8 * 8 + 9)) + 4 * 2
|
||||||
|
((8 + 3 * 6 * 2) * 9 + 3) + 5 + 6 * 3
|
||||||
|
6 * (9 + 6 * (7 + 4 + 2 + 5 + 6) * 7 + 3 * (5 * 8 * 6 + 6 * 7 * 8)) + (8 * 8 + 4) + (5 * (2 + 9) * 8) * 4 * 2
|
||||||
|
(8 * 6 + 8) + 6 * 8 * (9 * (6 + 8 * 3 + 8) + (7 * 9 * 6 * 3) * 3 + 8 * 4)
|
||||||
|
3 * 4 * 8 * 7 + (4 + 5 + 8 * (3 + 3 + 3 * 6) + 4 + (3 * 8 * 8 * 6)) + (8 + 8 * (4 + 2 + 5 * 8 + 9))
|
||||||
|
8 * ((2 + 8 * 8 * 2 + 3) * 8 + 7 * 4) * (5 + 6) + 4 * 7
|
||||||
|
5 * (6 * 2 * 3 + 9) * (3 + 3 * (6 + 6 * 3) + 3 * 5 * 2)
|
||||||
|
5 * (7 + (2 * 7 * 2 * 6) * (9 * 7 + 8 * 7)) * 8 * 5
|
||||||
|
4 * (7 + 2 + (2 * 5 + 2 * 4 * 8))
|
||||||
|
6 * 3 + (7 * 3)
|
||||||
|
8 * 9 + (3 + (3 * 5 + 3 * 8 * 8) + 8) + 3
|
||||||
|
2 * 3 + (4 + 7 + 2)
|
||||||
|
8 + 2 * 6 + 9 + 7 * (9 + (9 * 9) + 3 * (8 * 3 * 7) + 2 + (7 + 5 * 5 * 2 + 9))
|
||||||
|
6 + 9 * (6 * 9 + 5 + 7)
|
||||||
|
3 * (5 + 5)
|
||||||
|
(4 + 9 * 7 * 8 * (5 * 6 + 4 * 7)) * 6
|
||||||
|
5 + (3 * 7 + 5)
|
||||||
|
(5 + 2 * (3 * 2 + 6 + 3)) + (2 * 7 * 9 * 2) * (8 * 3 * 5)
|
||||||
|
2 * ((3 + 7 + 4) * 4 + 3 * 3) + 4 + 2
|
||||||
|
(8 * 3) * 5 * 9 + (7 + 8 + 4 * (2 * 8 + 8 * 3)) + 3
|
||||||
|
5 + (4 * 8) + 3 + 7 + 6
|
||||||
|
4 + 9 + 4 + 5 * 9 + (9 + 2 * 2 * (5 * 6) + 8)
|
||||||
|
9 + (5 + (6 + 6 * 4) * 8 * (7 * 9 * 3 + 8 * 3)) * 5 * 9 + 6
|
||||||
|
2 + 6 * 4 + ((9 + 8 + 6 + 9) * 7 + 2 + 5 * 3 + 3) * (9 * (5 * 4 + 4) + 3 * 7 + (6 + 4 * 9 + 5 + 4 + 5)) * 4
|
||||||
|
3 * 6 + 4 + (7 * (5 + 5 * 5) + (3 * 4 * 7 + 3) * 5 + 5 * 5)
|
||||||
|
8 + 8 * 7 + (6 + (9 + 2)) + 4
|
||||||
|
2 * 3 * (6 + (2 * 9) + 7 * 3 * 3 + 6) + 6 + 4
|
||||||
|
8 + 8 + 8 * ((7 + 5 + 9) * 6 + 9 + 9)
|
||||||
|
(3 * 7) + 5 * (9 * 6) * 2 + (9 * 9)
|
||||||
|
7 + 8 + 6 + 6 * 4 * 2
|
||||||
|
6 * 3 + 5 * (4 * (6 + 3 + 5 * 9 * 8) * (4 + 7) * (2 * 6) + 3 * 9) * 9
|
||||||
|
((2 * 2 + 9 * 4) + 3 + (3 + 5)) * 6 + 8 * 9
|
||||||
|
4 + 6 + (3 * (2 + 2 + 2 + 2) + 6 + 9 + 3 + (5 + 9 + 9 + 6))
|
||||||
|
(5 + (3 * 7 * 7 + 7 * 2)) + (9 * 3 * 6 + 8 + 5 + 8) * 8 * 5 + 9
|
||||||
|
4 + 6 * 7 + (2 + 3 + 4 * 8 * (3 * 4 * 9 * 2 * 5 * 6)) + 9
|
||||||
|
4 + ((6 + 9) * 7 * (8 * 7 * 4 + 7 + 5 + 3) * 9 * 6) * 9 + (3 * (6 * 7 + 6 + 2 * 4) * 3 + (4 + 8 + 9 + 7 + 8 + 9) * 6 + (6 + 9 + 2 * 3)) * 7
|
||||||
|
6 * ((8 * 6 * 7 * 7 * 9 * 7) + (9 + 8 * 5 * 8) + 5 * (9 + 2 * 6))
|
||||||
|
2 + 8 + 8 + 9 * (9 * (7 + 8 * 4 + 4 * 8 + 6))
|
||||||
|
2 * 6 * 4 * ((2 * 2 * 6 * 7 + 3 * 8) + (7 + 8 + 7) * 4 + 9) + 7 * (4 + (5 + 7 * 9))
|
||||||
|
(6 * (5 + 6 + 3 * 5 + 4 + 2) + 9 * 2 * 6) + 2 * (8 * (6 * 3)) * 2 + 4
|
||||||
|
9 + 5 + 5 * ((3 * 3 * 8) * (2 * 9 + 7) * 4 + 4) * (3 + 6 * 5)
|
||||||
|
((9 * 8 * 8) * 4 * 6 * 7) + 4 + 4 + 2 * 7 * 8
|
||||||
|
(5 * 4) + 6 * 3 + 8 * 2
|
||||||
|
7 * 8 * 2 + 2 * 7
|
||||||
|
2 * 2 * 9 + 4 * ((4 + 3 * 5 * 6 + 5 + 8) + 4 + 7 * 6 + (4 + 6 * 9 * 5 + 5)) + 3
|
||||||
|
3 + (2 * 3 * 9 * 7 * (5 + 6 * 6 * 5 + 4) + 7)
|
||||||
|
(9 * 7 * 7 * (9 * 9) + 5 + 3) + 9 * 7 + 9 + 9 + (3 * 9 * 2 * 2 + 2)
|
||||||
|
7 + 3 + (4 * 6 + (5 * 6 * 2)) * 3
|
||||||
|
9 + (3 * (8 * 5 * 6 + 8)) * ((8 + 6 + 9 + 8 + 5 * 6) + 6) + 6 + 4 * 2
|
||||||
|
3 + 2 * 6 + 8 * 7 * (9 * 6 + 3 * 7)
|
||||||
|
4 * 9 + 4 + 7 + ((9 * 8) + 7 + 8 * 9 * 4) * 9
|
||||||
|
(9 * 3 * 7 * 6 + 3) * 3 + 5 + (4 + 7 + 9) + 2 * 2
|
||||||
|
4 * 6 + ((6 + 5 + 3 + 8 + 7) + 5 + 6 + 2 + 5) * 3
|
||||||
|
6 + 3 * 6 + 8 * 2 + 6
|
||||||
|
(6 + 6 * (8 * 8 + 7 * 8 + 2)) + 9 * (6 + (7 * 9) + (6 + 6 + 3) + 8 * 5 + 6) * 5
|
||||||
|
9 + 4 * (5 * 4 * 5 + 4 * (4 + 7 * 9) + 2) + (6 * 7 * (2 + 5 * 5 * 6) * 8) + 8 * 3
|
||||||
|
3 * 4 * 6 * 9 * 7 + ((9 + 9 + 2) + (8 * 2 + 9 + 2 + 5) * 9 + (9 + 7 * 5 * 3 + 7 + 8) + 4)
|
||||||
|
(4 * 8 + 4 + 9 * 8) * 7 * 8 * 5 + 6 + 2
|
||||||
|
7 * (9 * (9 * 3 * 5) * 7 + 5 * 3 + 9) + 3
|
||||||
|
(6 * (9 + 4) * 4 * (5 * 7 * 4 + 6 * 5)) * 2 + 9 + 5
|
||||||
|
4 + ((5 + 3 * 7 * 8 + 3) + (8 * 3 + 5 + 9 * 7 * 8) + 5 + 3 + (2 + 3 * 7 + 2) + 8)
|
||||||
|
(2 * 4 * 7 * 2 + 7 * (3 + 8 + 9 + 7 + 9)) * 3 * (9 + (6 + 5 * 7 * 7) * 2 + (4 * 3 * 5 * 8 * 2 + 6)) * 6 + (8 + 6 + (9 * 6))
|
||||||
|
4 * 9 + (8 * (6 + 5 + 7 * 8 * 7 * 3) + 9 * 8 * 5) + 5
|
||||||
|
2 * 6 + (5 * (6 * 9 * 8 * 9) * 3) + 4 + 8
|
||||||
|
2 * 8
|
||||||
|
(8 * (4 + 6 + 5 + 3 * 5) + (2 * 5 * 8 * 9 + 3 + 6) * 2 * 6 * 2) * 3 + (8 + 6 * 2 + 4 + 7)
|
||||||
|
((6 + 4 * 8) * 3 * 5) * 3
|
||||||
|
(7 * 8 + 5 + 5) * 8 + (5 * 7 * 8 * 9) * (8 + 6 + (3 + 9)) * 5
|
||||||
|
7 * (6 * (6 + 8 + 6) * 7 * 3 * 9 + (9 + 8 * 5 * 3 * 6)) + 5 + 5
|
||||||
|
3 + (6 * 3 + 7) * 4
|
||||||
|
(7 + 8 + 3 + 5 * 2) + 2
|
||||||
|
4 + (7 * 7 * 3 + (6 + 6) * 8 + 6) + (4 * (9 + 7 + 5 * 4) * 2) * 6 * (2 * 3) + 4
|
||||||
|
2 * ((3 + 5 * 6 + 6 + 3 * 6) + 5) + 5
|
||||||
|
4 * 6 + (3 + 2 + 2 * 6 * 4 * 5) * 6 + (9 + 2 + 2 + (9 * 2 * 2 * 3 + 8) * (7 + 6 + 3 + 5)) + 8
|
||||||
|
4 * 3 * (6 + 8 + (6 + 2 + 4 * 7 * 7 * 6) * 9 * 7) * 7
|
||||||
|
8 * (8 * 2 + 8 + (3 * 2))
|
||||||
|
5 + ((4 * 8) * (3 * 9 * 8 * 8) * 6 * 2 * 2 + 6) + 3
|
||||||
|
2 * 7 * 6 * (7 * 8 + 4 + 5) * (2 * 5) + 7
|
||||||
|
3 * 5 * (5 * 2 + 6 + 9 + 8 * 4)
|
||||||
|
(3 + 3 + 8) + 3 * 8 + 6
|
||||||
|
2 * (9 * (2 * 2 + 4 * 2 + 8) * 5) * 4
|
||||||
|
3 * (2 + 5 * (3 + 4 * 6 + 4 * 5) + 2) * (4 + 8 * 2 * 9 * 7 + 6) + (6 * 4 * 6) * 5
|
||||||
|
8 + (5 * 6 * 4 * 8) * (4 * 2 + (2 * 6) * (5 * 9 + 8 + 7 + 2) + 9) + (3 + (8 * 6) + 2 * (5 * 4 + 9 + 7 + 3 * 3) + 9) * 9
|
||||||
|
(3 + 4) + 5 * 6 + 4 * 7 + (2 + 3 + (5 * 9 + 8 + 2) + 6)
|
||||||
|
(8 + 5 + 2) + (7 + 3 + 6 + 6 * 9) + 3 * 5 + ((3 + 7 + 3 * 2 * 6) + 6 + 6)
|
||||||
|
(2 * 6) + 6
|
||||||
|
5 + (9 + 6 + 4 * 4 + 6 * (5 * 4 * 2 * 3)) * 8 * 6
|
||||||
|
(2 + (4 * 5 * 2 + 4)) + 8 * 8 * 8 + 5
|
||||||
|
7 * 5
|
||||||
|
3 * 2 * 3 + (9 + 4 * 6) * ((3 * 4 + 9 * 5) * 2 + 5 * 6)
|
||||||
|
(4 * 8 * (5 * 5) + (3 * 5 + 9 * 8 + 4 + 4)) * 5 + 4 * 6
|
||||||
|
5 * 6 * (5 * 3 * 3) + 6 * 5
|
||||||
|
(6 + 4 + (6 + 5 * 6 + 8 * 9 * 9) + 4) + 4 * 5 + 9 + 5
|
||||||
|
4 + 2 * 4 * 2 * (5 * 4 + 9 * 8)
|
||||||
|
2 + (6 + (9 * 4 * 6 + 8 + 4 + 3) * 6 + (3 * 8 + 6 + 2 * 4) + (4 * 4 * 2 * 8))
|
||||||
|
8 + (2 + 5 * 6 * 7) + (5 * 3 * 6 * 5 + 8)
|
||||||
|
7 * 6 * 9 * 8 + (2 + 7)
|
||||||
|
(2 + 7 + (6 + 5 + 7 * 4 + 7)) + 4
|
||||||
|
((7 * 5 + 8 + 2 + 7) + 9 * 2) + 3 + 8 + (9 + 7 + 8 * 6 * (5 + 3 * 5 + 6))
|
||||||
|
8 * 5 + (8 + (7 + 4 * 9 + 2)) + 2 + (7 + 2) * 7
|
||||||
|
9 + 4 * 9 + (9 * 6 + 2 * 6 + 5 + (4 * 9 * 6 * 7 + 5 + 8)) * (7 + 4 * 5 * (4 * 8 * 4 * 7) * 6) * 4
|
||||||
|
3 * 5 + (2 * 9 + (2 * 5 * 5) * 5 + 8)
|
||||||
|
3 * 9 * (8 + 6 + (9 + 2 + 2 + 8 + 4) * 6 + 7 * 3) * 2
|
||||||
|
2 + 8 * 7 + (4 * 4 * 5) * 7 * 9
|
||||||
|
5 + 9 * 6 * (4 + 9 + (8 * 7 * 9) + 9 * 9) + 6 + 8
|
||||||
|
9 * 6 + 9 * (3 * 8 + (9 * 9 * 8 + 2 + 3 * 6) + 5 * 6) * 7
|
||||||
|
4 + 6 + (2 + 2) + 7 * (9 + 3 * 5 * (3 + 3 + 8 + 3)) * 9
|
||||||
|
3 * ((2 + 4) * 7 * (2 * 3 * 8 * 6 * 7) + 4 + 3) + 7
|
||||||
|
9 + 3 + 4 * 8 * 5 + 9
|
||||||
|
8 + (4 * 4 + (7 * 5 * 7 + 2) + (9 * 3)) * (2 * 9 * 9 * (6 + 7 * 8 + 9 + 6 + 3) + 3 * (3 * 9 + 7 + 6 + 5 + 8)) + 5 * (5 + (4 + 2 + 8) + (9 * 7 * 4) + 3) * 8
|
||||||
|
(4 * 8 + 7 * 6 + 5 + 6) * (3 * 6 + 7 + (2 * 3 * 5)) + 4 * 4 * 5
|
||||||
|
2 * 6 + 4 * 7
|
||||||
|
6 + 8 * 7 * ((5 + 4 * 2 + 7 + 7 + 8) + 9 * 7 * 5) * 3 + (6 + 2)
|
||||||
|
(6 + 3 * 8) * 4 * 3
|
||||||
|
3 * 2 + 8 + (4 * (5 + 2 * 5 * 6) + 3 * 6)
|
||||||
|
8 * (4 * 3 + 8 * 5) * 3 * 8 + 8
|
||||||
|
5 * 4 + (3 + (2 + 6 * 8 + 3) * 4 * 3 * 6 + 4) + (8 + 6 + 2 * 3) * 4
|
||||||
|
((5 + 8) * (6 * 6 + 4 * 8 + 7) + 7 * 3 + (9 * 5 + 9) * (7 * 9)) + 7 + 7 + ((9 + 7 * 4 + 9) + 3)
|
||||||
|
(9 * 9 + 4) + (3 * 2 * 6 + 6 * 8)
|
||||||
|
((3 * 6 + 9 * 9) + 6 * 4) * (9 + 6 + 9 * 2) * 8 * 8
|
||||||
|
2 + 8 * (9 * 6 * 5) * 6 * 8 + 9
|
||||||
|
(6 + 6 + 7) + 7
|
||||||
|
8 + 7 * 9 + (9 + 5 + (5 * 5 + 2 * 9 * 8 * 6) + 6 + (4 + 6 * 8 * 2 + 2 + 9) + (5 + 8 + 9 + 4))
|
||||||
|
3 + (7 + 9 * 2 + 6 * 6) * 2 + 5
|
||||||
|
3 * 5 + 5 * 6 + (4 * 7 + 6 + 9 * 8 + 7) * 8
|
||||||
|
5 + 5 + (5 * 8 + 5 * (4 + 5) + 4)
|
||||||
|
(4 * (7 + 2 * 4 + 3 + 2 + 2)) * 2 + (4 + 3)
|
||||||
|
(3 * 3 * 2 * 7 + 6 * (6 * 5 + 9 + 5)) * 4 + 3 * 7 * (4 + 2 * 2 + 8 + 7 * 4) + 7
|
||||||
|
6 * 4 + 8 * 7 * (9 * 4 * 6 * (4 * 7 * 7 * 4) * (5 * 2 * 4))
|
||||||
|
4 * 8 * (4 * 2 + 3 * 6) + (8 * 4) + 8
|
||||||
|
9 + 5 + 3 + ((3 + 2) + 8 + 5 * 5 + 3) * 5
|
||||||
|
4 * ((6 + 6 * 2 * 8) * 9 * (4 + 5 * 8) * 9 * 7 * 2) + 6
|
||||||
|
6 * 5 * 2 * 2 * 7
|
||||||
|
6 * 6 + (8 * 4 * 5) + 9
|
||||||
|
3 * ((9 * 5 + 2 + 3 * 9 + 8) + 2 + (8 * 4 + 8 + 7 * 5) + 7) * 8 + 6
|
||||||
|
4 + (2 + 7 + 7 + 2 * 7)
|
||||||
|
2 + 3 + (2 + 5 + (3 + 4 + 7 + 5 * 9) * 3) * 8 * 5 * 9
|
||||||
|
4 * ((8 + 9 * 4 + 2 * 9) * 9 + 6 * 4 + (3 * 9)) * 3 + 6 + 3
|
||||||
|
4 + 4 * (5 * 2 + 6 + 6) + 6
|
||||||
|
((5 + 6 * 7 * 2) + 7 * 7 + 9 + 7 * 8) + (9 * 5 + 4 * 5 * 7 * 8) * 3 * 2
|
||||||
|
2 * 6 + 6 * (2 + 7 * 3 * 3 + 9 * 2) * 6
|
||||||
|
(4 * 5 * 2 * 5 * 4) * 6 + (2 + 3) * 2 * 9 + (8 * 6 * 7 + 8)
|
||||||
|
(3 * 6 + 3) + ((4 + 4 * 3) + 5 + 8 + 8) + 5
|
||||||
|
8 * 4 + 3 + (8 * 2) + ((2 + 6 * 3 + 8) * 2 + 4) + 3
|
||||||
|
5 * 7 * (6 * 5) * 8 + 9 * 9
|
||||||
|
9 * (4 + 8 * 8) * (5 + 7 + 6 + (3 + 2 + 7 + 4)) * ((2 + 8) + 6 * (3 * 3 * 5) + 5)
|
||||||
|
6 + (5 * (2 + 6 + 8 * 2 * 7 * 3) * (6 + 8) * 9 + 6)
|
||||||
|
(9 * 7) * 2 * 6 + 2 + 4 + 6
|
||||||
|
3 + 9 * 6 + 4 * (3 * 4) * 5
|
||||||
|
(8 * 3) + (9 * (3 * 6 + 5) * 9 + 9) + (4 * 3 * 5) + 6
|
||||||
|
6 + 3 * (4 + 2 * (2 * 5 + 7 * 2) * (2 + 2 + 5 + 2 * 7 + 7)) * 5 * 9 * 9
|
||||||
|
9 * ((5 + 3 + 3 + 5) + 8 * 8 + (9 + 3 * 4 * 7 * 3 + 7) + 7 * 8) * 3 * 6 + 2 + 3
|
||||||
|
6 * (7 + 9) + (2 * (7 * 3 + 5) * (6 * 5) * 7) * 6
|
||||||
|
(5 * 8 + 7 * 5 + 5 * 6) * (3 * 6 + 8) * 8
|
||||||
|
4 + ((5 * 6 * 5) * 9 * 2 * 3) * 4 * (2 + 9 + 3 + 6)
|
||||||
|
(2 + 4 * 2 * 5 + 3) * 9 + ((5 * 8 + 9 * 2 + 3 * 6) + 4 * 4) + 6 + 4 + 7
|
||||||
|
((2 + 4) * 3 * 3 + 4 + 3) + 8 * 3 + 4
|
||||||
|
7 * (7 + 5 + 7) + 7 * 3 * (8 * 7 * 7)
|
||||||
|
((9 + 8 * 6) + 3 * 2 * 5) * 2 * 4 * 9
|
||||||
|
((3 * 2 + 2 + 3 + 9) + 8 * 3) * 9 + 8 + 3 + 4
|
||||||
|
6 * 4 * 6 + 3 * (3 + 5 + (7 + 8 + 4 + 7 + 6) + 5 * 2 + 7)
|
||||||
|
((5 + 5 * 2 + 3) * 7) + 6 + (8 * 3 * 9 + (3 * 9 * 5 + 7 * 4)) * 9 * 8 * 6
|
||||||
|
(3 + 2 + 2 * 7 + 8 + 8) * (9 + 3) * 8 * 8
|
||||||
|
9 * (9 + (2 + 6)) * 2 * 7
|
||||||
|
6 * 4 + 2 * (9 + (6 * 2 * 7 * 6) * 7 + 8 + 3)
|
||||||
|
5 * 9 + 8 + (9 * 3) + 9
|
||||||
|
6 + ((5 * 6 + 6) + (4 * 3 + 3 + 4 * 5 + 4))
|
||||||
|
4 + 6 + 7 * 7 * (2 * 7 * (9 * 4 * 9) + 2 * 5)
|
||||||
|
(2 + 5) + 9 + 3 + 9
|
||||||
|
((7 + 6) * 4 + 6) + 3 * (4 + 4 * 8 + 6 + (7 * 3 + 4 * 9) + (4 + 6)) + 3 * 9
|
||||||
|
(2 + (8 * 8 + 9 * 8 * 6) * 2 * 3 * 2 + 6) + 6 * 5 * 8 * 6 + (7 * 9 + 6)
|
||||||
|
2 + 4 * 8 + (9 * 9 + 3) + (2 * (4 + 4 * 7) * 3 + 6 * 9) * 5
|
||||||
|
7 + 7 * 6 * 8
|
||||||
|
8 * (7 + 4) + 7 * 8 * 5 + 3
|
||||||
|
8 * 3 + (6 + 7 + 2 * 3 + 5) * 3
|
||||||
|
(7 + 3 + (6 * 5 * 5 * 2 + 5 + 8)) * 8 + 2 + 8 + 5 + 3
|
||||||
|
((5 * 9 + 6 * 2 * 7 * 6) * 7 * 5) + ((4 * 3) * 4 * 2 + (8 + 4 * 8 + 4) + (8 + 7 + 3 * 6)) * 6 + 8 + 9 * 5
|
||||||
|
((9 * 3 * 3 * 6 + 4 * 3) + (7 * 5 * 9) * 7 * 7 + 2) * 9
|
||||||
|
9 * 7 + 4 * (8 * 2 + 5 * (5 + 6) + 8 + 6) * 3 + 5
|
||||||
|
((5 + 3) * 5 + 6 + 8 + 5 + 3) * 8 * 6 * 5 * (6 + 8 + 3 * 8)
|
||||||
|
(4 * 3 * 7 + 6 * 6 + (4 * 5 + 6 + 5 + 8)) + 6 + 7 + 4 + 4 * 5
|
||||||
|
((6 + 8 + 5 + 7 * 7 * 6) * (7 * 9 * 4 * 6)) + 5 * 4 * 9
|
||||||
|
((9 * 2 * 7 * 7) * 7 * (4 + 9 * 9 * 2 + 6 * 5) + 4 + 2 * 8) + 9 * 7
|
||||||
|
(4 * 5 + 7 + 3) + 8
|
||||||
|
7 + 9 + 4 * 2 + 9
|
||||||
|
(9 * (4 + 2 * 9 + 5 * 5 * 3)) * 2 * 5
|
||||||
|
8 + ((6 * 3 + 4) * 4 + 4 * 9 + 3) * 9 * 6 + 4 + 6
|
||||||
|
(6 * 4 * 8 + 7 * 5 + 4) * 8 + (5 * 4 * 2 * 3) * 5
|
||||||
|
3 + 2 * (8 + 2 * 3 + 3 + (5 + 8 + 4 * 8 * 5)) * (4 * 6 + 8 + 9 * 8)
|
||||||
|
2 + 7 + 3 * 6 * 8 * (6 + (3 * 4 * 5 + 4))
|
||||||
|
(8 + 3 * 7 * (4 + 6 + 8 * 4 + 8 * 8)) + (9 * 9 * 2 * (3 + 4 * 4 * 8 + 3 + 8) + 6)
|
||||||
|
((8 * 9 + 2 * 8) * 5 + 6 + 3 * 3) + 3 * 7
|
||||||
|
4 + (2 + (6 * 5 * 3) * 2 + 2 * (3 + 7) * 9)
|
||||||
|
(5 * 4 * (6 + 4 + 9 + 5) * 4) + 4 * 3 * 4 * ((9 * 6 + 9 + 8 * 8 + 6) * 2 * 7 * 4) * 2
|
||||||
|
6 * 6 * (7 + 2 * (8 * 4 + 4)) + 7 * (9 * 6 * (5 + 6 + 2 + 2) + (9 * 4 * 5 * 5 * 5 + 6) * (6 * 6 * 5 * 6 + 8) + 5)
|
||||||
|
5 * (4 + (7 + 7 * 9 + 5) * 5 * 9) * 3
|
||||||
|
2 + (8 * 6 * 7 * 8 * 6 + 2) * 3
|
||||||
|
4 * (9 * 3 * 9 + 3 + 9 * 8) + 3 + (9 + 8 + 4 * 8)
|
||||||
|
4 * ((2 + 9 * 7 * 6 * 4 + 9) + 5 * 6 + 7)
|
||||||
|
(5 + (2 + 3 * 4 + 7) + (4 + 6) + 6) + 9 * 7 + 5 * (7 + 5 * (8 * 7 * 3 + 2 * 4) + 4) + 7
|
||||||
|
4 + 4 + (8 + 9 * (9 + 4 * 9 * 4 + 8 + 8) + 3 + 2 * 8)
|
||||||
|
5 * (5 + 5 * 3 * 2 + 2 + 3) * (5 + 3 * 8 + 9 + 8 + 7) * 2
|
||||||
|
8 + (3 * 9) + ((5 + 7 + 6 + 9) * 8 * 4 + (8 * 3 + 9 * 4 * 3)) + 4 * 4 * (3 + 3 * 7 * 6 * 2 + 7)
|
||||||
|
6 * (6 * 4 * 3 * 2) + 8 * 9 * (2 + 5 + 6)
|
||||||
|
4 + (8 + (3 + 2 + 6) * 5 + 2 * 7 + 9) + 5 + 4 + 3 * 4
|
||||||
|
2 + 4 * ((5 * 4 * 2 + 8) + (5 + 4 + 6 + 9) + 7 * 2 + (4 * 4 + 3 * 6 + 3)) * 6
|
||||||
|
((7 + 5 + 6 + 6 * 7) * 6 * 6 + (7 + 6 * 3 * 9) + 4 + 9) * 4 * 8 * 3
|
||||||
|
8 * 3 + 7 + 2 * (8 + 7 + 5 + (9 * 4)) * 6
|
||||||
|
8 + 3 + (3 + 5 * 6 + 5 + 6 + 3) + 3 * 9 + (2 + 6)
|
||||||
|
5 * 4 * (4 * 5 * 6 * 5) + (8 + 7 * 3) + 6
|
||||||
|
(5 + (7 + 4)) * 2 * (4 + 7 * (2 * 7 * 9) * (6 + 5 * 7 * 4) * 3 * 7) * (6 + 8) * 2 * (4 + (8 * 7 * 9) * 3 + (4 + 5 + 7 + 6 + 9))
|
||||||
|
((2 + 2 + 5 + 8 * 7) + (9 + 6 + 4 + 7) + (7 + 3 + 7 * 7 * 2 * 6) * 6) + 8
|
||||||
|
5 + (3 + 6) * 2 + (4 + (3 + 7) * 6 + 8 * 5 * 5) * (2 * 4 * 3) * 7
|
||||||
|
(4 * 5 * 3 * 8 + 6) + 9 * 2
|
||||||
|
(2 * 2 * 6 + (7 * 5 + 2 + 4 + 3) + 4) + 3
|
||||||
|
9 + 4 + 4 + 6 + 4
|
||||||
|
9 + 9 * 9
|
||||||
|
6 + 6 + 4 + ((9 * 8) + 3 + 5 + 6 + 6 + 5) + (7 * 6 + 7 + 7 * 8) + (7 * 7 + 7 * 2)
|
||||||
|
(2 * (4 + 2 * 4) * 7) + 5 * 8 * 7 * (5 * 3 * 5) * 6
|
||||||
|
(5 + 5 + 5 + 3 + 2) + (9 * 9 + 3) * 6
|
||||||
|
(5 + 2 + 2) * 5 * 7 * (9 + 6) * ((9 * 4 + 8) * 2)
|
||||||
|
((9 * 8 + 9) * 6 + 6) * 6 + 7 * 7
|
||||||
|
5 * (9 * 9 * 7 + 2 + 4) * 9 * 8 + 4 * ((4 * 5 + 9) + (9 * 6 + 9 * 8) * 4)
|
||||||
|
4 * (7 + 7 + (4 + 6 + 4)) * (6 + 5 * 2 + 5 + 3 + 4)
|
||||||
|
(4 * 5) + 4 * 4
|
||||||
|
4 * 8 * 9 + 4 + 3 * ((9 * 6) * 6 + 3 * (8 * 8 + 2))
|
||||||
|
3 * 7 + 7 * (5 + 5 * 8 * 9) * 7
|
||||||
|
5 + (7 + 4) * 6 * 7
|
||||||
|
7 * (2 + 2 + 5 + (6 * 6 + 5)) + 7 * 3 + (4 + (6 * 4) * 6 * 9) * 6
|
||||||
|
6 * (6 + 9 + 4 * 7) * 8 * 9
|
||||||
|
((3 * 6 + 8 + 5) * 9) * 7 + 6 * 8 + 2 * 3
|
||||||
|
(8 + 9 + 5 + 9 + 5 * (2 + 6 * 3 * 5 + 8 + 8)) + 7 * 7 + (3 + 2 * 4 + 3) + 5
|
||||||
|
7 + 7 * 6 + 9
|
||||||
|
5 + (3 + 3 + 4 + (8 * 3 * 2)) + 6 * 5 + 8
|
||||||
|
(3 * 6 + (2 + 2 + 9) * (3 * 2 + 2 * 3 * 8 * 6) + 5) + 3 + 2 + 4
|
||||||
|
2 + 6 * ((4 * 8) + 3 + 4 + 4 * (5 * 6 * 4 * 6 * 4) + 9) * 7 * (9 + (6 * 2) + 8 + 8) + (3 + 2)
|
||||||
|
8 + (2 + 6) * 3 + 4 + (7 * 4 * 9)
|
||||||
|
9 + (7 + 4 + (4 * 9 * 2 + 7 + 7) * (9 + 2 + 7)) * 3 + 3 + 4 + 7
|
||||||
|
9 * 5 + 5 + 5 * (2 + 7 + (3 * 2 * 4)) + 3
|
||||||
|
9 + 4 + 2 + ((5 + 7 + 6 + 2) + 2) * 8
|
||||||
|
7 + ((5 + 2 * 5) + 6 + 6 + 5 * (6 * 8) + 5) * 4 + 4
|
||||||
|
4 + (3 + 5 * 4 + 8 * 3 * 4) * 8 * 4
|
||||||
|
5 * (6 * 4 * 9 + 4 + (6 + 8 * 8 * 5)) + (6 * 9 + 2 + 6) * ((6 * 6 + 8 + 7) + 7 + 5 * 7)
|
||||||
|
2 * 2 + 8 * 8 * 6 + (3 * 6 + (4 * 8 + 4 * 9 * 5 + 6))
|
||||||
|
9 + (9 + 3 * 4 * 7 + 3 + 5) * (6 + 8 * 3 + 2) + 6 + 2
|
||||||
|
9 + 5 + 7 * ((9 + 9 * 5 * 8 * 5 + 3) * 8 + (8 * 8 * 5) * 4 * 2) + 3 + 8
|
||||||
|
9 * 2 + 8 * 7
|
||||||
|
6 + (5 * 6 + (5 * 9 * 2 + 4 * 3 + 2) + 8) + (3 + 4 + 9 + 9 + 5) + 3 + 8
|
||||||
|
(5 + 4 * (6 * 5 * 7 * 9 * 3) + 6 * 7 + 9) + 6 * 4 + 3 * 6 * 9
|
||||||
|
(5 + 2 + 2 + 2 * 9 * 3) + 8 + 2
|
||||||
|
3 + (8 + 6) * 7
|
||||||
|
(8 + 9) + 6 + (2 + 4) * 5 + (5 + 6 * 8) * 3
|
||||||
|
(6 * 2 + (4 + 2 * 2 + 3 * 9 + 8) * 8) + (7 + 5 + (4 * 5 + 7 * 7) + 2 * 8 + (4 + 6 * 6 * 2))
|
||||||
|
(8 + 7 * 5 * 4 * 2) * 9 + 5 + 6 + 8
|
||||||
|
3 * 7 * (6 * 8 + 6 * (3 * 2 * 4 + 9 * 3 * 3)) + 5
|
||||||
|
8 * (6 + (5 * 6) * 8 * 3 + (2 + 9))
|
||||||
|
(3 + 9 + 8 * 7) + 3 * 7 * (6 * (6 + 3) * 7 + (9 * 4) + 7 + 6)
|
||||||
|
4 * 3 * (3 * 8 * 7 * 8 * 4 * (8 + 2)) * (7 * (4 * 4 * 5 * 7 + 4) + 6 + 4) + 8
|
||||||
|
(2 + 3) * ((3 * 8) + 2 * 2 + 8 * 8) * (9 + 6) + 2
|
||||||
|
4 * 6 + ((2 * 4 * 2 + 6 * 9) + 6) * 9
|
||||||
|
9 * 8 * (2 * 7 + 6 * 7 + (8 + 8 * 4 + 9 * 7 + 6)) * 5 * (5 * (5 + 6 + 2) + (3 * 6 * 8 + 9 * 5))
|
||||||
|
2 + 2 * (4 + 5 * (9 + 5 * 3 * 3) + 7 * 7 + 6) * 2
|
||||||
|
2 + ((3 + 8 + 6 + 7) * 4 + 8 * 8 + 8) * (4 + 4 * 7 + 2 * 9 * 5) + 7
|
||||||
|
8 * (7 + 6 * 7) * 2 * 5 + (9 + 5 + 9 + 9 * 6) + 9
|
||||||
|
3 + (4 + (2 + 9 + 4 + 4 * 3 * 7) * (5 + 9 * 5 + 5)) + 2 * 7 * 4 + (2 * 4)
|
||||||
|
4 * (2 * (2 + 5) * 9 + 5 + 5 * 3) * (2 * 4 + 4 * (3 + 6 + 2))
|
||||||
|
6 + ((8 + 4) * 3 * 8)
|
||||||
|
(9 * (8 + 3 * 2 * 9 * 7) + 9 + 5 + (8 * 8 + 8 * 5 * 3 * 4)) * (9 + 5 + 4 * 9) + 3
|
||||||
|
2 * 8 + (8 * 4 + 2) * (5 * 5 + 6 + (6 * 4 * 4 * 4 * 3)) + 2
|
||||||
|
7 * 4 * (7 * (3 * 4 + 3) + 8) + 9 + 2 * (6 + 7 + (5 + 4 * 2 + 4) * 6)
|
||||||
|
5 + (9 * (5 * 7 + 6)) * 4 * 2
|
||||||
|
6 + 7 * (8 + 6) * 8 * ((4 + 7 * 5 + 2 * 3) + (2 * 3 * 5 * 6 + 9)) + 9
|
||||||
|
6 * (2 + 5 + (8 * 6 * 5 * 4 + 7 * 9) * 8 + 2) + 8 + 5 + 5
|
||||||
|
2 + 7 + 8 + (3 + (5 * 6 + 6) + 9) * 3 + (7 * (7 + 6) * 9 * (4 + 5 + 3 + 3) + 4)
|
||||||
|
7 * 8 + 2 + 3 + ((7 + 3 * 4 * 3 * 2 + 9) * (6 * 2) * 4 + 6 + 3) * 6
|
||||||
|
3 + 4 + 5
|
||||||
|
(4 + 4 * 3 * 2 * 6) + (9 * 3)
|
||||||
|
3 + (9 * 8 * 2 + 7 * 6) + 7 + (3 + (3 * 4 * 2) + 3 * (2 + 3 * 4 * 5 * 4 * 6) * 2) * (6 + 4 * 9) + 5
|
||||||
|
7 + (7 * 4 * (9 + 8 + 2 + 2 * 5) + 2 * (4 * 3 + 7 * 8) * 9) * (3 * 9 * 2 * (7 * 8 * 4 + 8 + 5 * 6)) * 3
|
||||||
|
((6 + 4 + 5 * 5) * 5 * 2 + (2 + 2) + 9 + (4 * 3 + 9)) + 7
|
||||||
|
2 + 2 * 4 + (4 * 9 * 7 * (9 * 8 * 6 * 7))
|
||||||
|
6 + 4
|
||||||
|
7 + (3 * 4 + 2) * 8 + 7 * 4
|
||||||
|
7 + 4 + 8 + (9 + 7 * 4 * 8 * 4) + 4 * 8
|
||||||
|
5 + 8 * 3 * ((8 * 9) * 2 + 6 * (2 + 5 * 8 + 3 * 9) * 4) + 9 + 8
|
||||||
|
8 + 6 + 6
|
||||||
|
6 * 6 * 6
|
||||||
|
6 + 9 + 5 * ((3 * 8 + 6) + 8 * 7 + 3 + 7 + 6) + 2
|
||||||
|
4 * 9 + 3 + 8 * ((2 + 2) * 5 * 3)
|
||||||
|
6 * (4 + 7 + 4) * 5 * 7 * 7 + 6
|
||||||
|
6 + 7 + (6 + 6) * (3 * (8 * 8 * 4 * 4 + 3 * 9) + 2 + 5 + 8) + 5 * 6
|
||||||
|
8 * 8 + (9 * 9 * (2 * 3) + 2 + 6) * (5 * (4 + 9 * 5 + 2 + 4 + 7))
|
||||||
|
9 + 5 + 7 * (4 * (4 + 4 * 4 + 7 * 7) * 9 + 6 * 5 * 3) * 5 * 9
|
||||||
|
(6 + 8 + 4 + 8) + 6 + 9 + ((6 + 4 * 9 * 9) + (6 * 6 + 7 + 9 * 2) * 7) * 5 * 9
|
||||||
|
8 + ((7 * 8) + 5 + 6) * 4 * 7 * 9
|
||||||
|
(6 + 2 + 2 * 3 * (8 * 6) * (5 * 9 * 6)) + 9 * (4 + 3 + (5 * 2) * 2 + 3 + 6)
|
||||||
|
4 * 8 + 7 * ((5 + 4 * 6) + 5 + 3) + 3 + 4
|
||||||
|
3 + (6 * (8 + 8) * 9) * 4 + 4 * (5 * (9 * 3 * 7 * 4) * (4 + 6 * 8 * 8 * 4) * 8) * 3
|
||||||
|
7 * 3 * 4 * 5 * 7 + (3 + 7 + (3 * 5 * 3 * 3 + 3) + 6)
|
||||||
|
(5 + 5 * 4 + 5 + 7) + (8 + 7 + 8 + 2 + 3)
|
||||||
|
(9 + 8 + 8 + 3 * 2 + 5) + 4 + (8 * 5 + 3 + 9 * 8) + (7 * 4) + 5 * 2
|
||||||
|
(5 * 9 * 2 * 9) + 5 * 8 + 4
|
||||||
|
9 * 3 * 9 + (9 + 3 + 2)
|
||||||
|
4 * 5 * 7 + (7 * 6) + 6 + 9
|
||||||
|
(3 + 8) + 4 + (7 + 2 * 9) * 7 * 8 + 4
|
||||||
|
8 + 3 + 4 + 6 * ((6 + 7 * 4 + 6) + 6 + 3 + 9 * 6)
|
||||||
|
(4 * 8) * (9 + (2 + 4 * 6 + 4 + 8)) * 3 + 9 * 4 + 8
|
||||||
|
5 * 4 + (9 + (2 * 8)) + 9 * 2
|
||||||
|
9 * 2 + (3 * 2 + 5 + (3 * 8 + 5 * 2 * 5 + 6) * 5 + 8) * 7 * 2
|
||||||
|
8 + (3 * 5 + 2 * 7 + 8 * 2)
|
||||||
|
5 + (4 * 7 + 2) + (5 + 8 * 5 + (4 * 9) + (3 + 3))
|
||||||
|
((4 * 5 * 8 + 6 + 8) * 9 * 3 + 4) * 8 + 9 * 7
|
||||||
|
((6 * 6 + 5 * 4 + 2 + 4) * 7 + 5 + 9 * 8) * 5 + 9
|
||||||
|
5 + (9 + 5 * 9 + 6 * 3) * ((3 * 6) * 2 + 8) + 3
|
||||||
|
((6 + 5) * 5 * 6 * 9 * 8) + 3 * 7
|
||||||
|
(8 * 6 + (5 + 5) + 4) * 7 + 3 + 8
|
||||||
|
4 + (2 * 3 * 8 + 3 + 3) * 8
|
||||||
|
2 * (7 + 6 + 2 + 3) * 8 + 2 + 2 * (4 * 3 * 5 * 8)
|
||||||
|
6 * (8 + (3 * 6 + 8 + 8 + 6) * 9)
|
||||||
|
((8 * 3 + 2) * 6 * 2 * (5 + 6 * 2 * 8)) + 8
|
||||||
|
6 + (6 * 5 + (5 * 9) * (6 * 5 + 8 * 2 + 5)) * (8 * (3 * 3 * 5) + 9) * 7
|
||||||
|
(7 + 6 + 2 * 5) + 2 + 6
|
||||||
|
(8 * 7 * (6 * 4 + 6 * 3) * 6) + 4 * 5 * (5 * (2 * 2 * 9) * 4 + (2 * 6 * 5) + 9 + 9)
|
||||||
|
((3 * 2) + 7 + 6 + 4 * 9) + 4 + 2 + 7 + (4 * (7 * 9 * 2) * 3)
|
||||||
|
(3 * (5 * 9 + 9 + 9 * 9)) + (9 + (4 * 4 * 6) * 9) + 9 * 7 + 4 * 9
|
||||||
|
4 + (6 * 6) * (9 * 8) * 9 + (6 + 7 * 5 + (2 + 9))
|
||||||
|
(8 + (5 + 7)) + 7 * 8 * 9 + 9
|
||||||
|
8 + 4 + 6 * (5 * 3 + 8 + 7) * 6 * 3
|
||||||
|
3 + 9 + 6 + (2 + 8 + (8 + 5 * 5) * 4 + 4 * 8) * 9 * 3
|
||||||
|
(4 + 4 * 3 + 4) * 8 * 4 + 4 + 6
|
||||||
|
2 * (3 * 6) + (4 + 3 * 8 + 5 + (6 * 5 * 2 + 5 + 2 * 9))
|
||||||
|
4 * 3 + (7 + 7 * 3 * 5 * 4 * 4) + (8 + 5 * 8) * (2 * 4) + 8
|
||||||
|
(4 * 9 * 6 + 6) * (6 * (8 + 4 * 9)) + 6 + ((4 + 2 * 9) * (3 + 3 + 6 + 3) + 9 * 9 + 8 * 7)
|
||||||
|
2 * 5 + 5 * (8 + 4 * 3 + (7 + 6) * 7 + 3) * 8
|
||||||
|
((3 * 4 + 4 * 9) * 6 + 7 * 4 + 7 * 2) * 7 * (7 + 9 + 6 * 8) + (3 * (6 * 6 * 9 * 7 + 4) * 5 * 2 + 3 + 4) * 8
|
||||||
|
(5 + 6 + 9 + 3 * 3 + (2 + 8 + 5 + 3)) + (2 * 5 + 6 * 9 * 6) * 2 + 9 * ((5 * 9) + 8 * 8 * (7 * 4 * 3 * 4 * 4 * 7))
|
||||||
|
2 + 8 + 4 + 7 * ((8 + 7 + 8 * 3) + 9 * 2 + 6 + 3) + 6
|
||||||
|
4 * (8 * 8 * 4) * 9 + (7 + 7 + 2 * 2) * 6 + 8
|
||||||
|
3 + (6 * 4 * 6 + 3 * 9 + 3) * 7 + 3 + 4
|
||||||
|
3 * 4
|
||||||
|
(4 * 6 * 4) + 3 + 7 + 6 * 9 + 7
|
||||||
|
3 * (6 + 8 * 4 * 2) + 5 + 5 * (4 + 6 + 2 + 6)
|
||||||
|
(5 + 2 + 4 * 2 * 2) + (5 + 5 * 5 * 3) + 3 * (4 + 9 + 6 * 6 + 2)
|
||||||
|
((6 + 9) * 6 + (3 + 7 * 4 + 2 + 5 * 6) + 3 + 5 * 2) * (2 * (5 * 9 + 9) * 5) + 8
|
||||||
|
9 * 8 * 9 * 8
|
||||||
|
6 * 8 * 4 * 4 + 4 * 4
|
||||||
|
((8 * 7 * 6 * 3) + 7 * 2 * 6 * (4 + 6 * 5 * 9 * 5) * 8) * (3 * (4 * 6 + 8 + 2 + 6 * 2) + (2 * 4 + 4 * 7 + 3 * 5) * 9 + 9 + 8)
|
||||||
|
(3 * 5 * 7 * 4 + (4 + 6 + 6 + 9 * 6 * 3) * 5) * 6
|
||||||
|
(4 * 4 * 5 * 8 * (3 + 4) + 7) + 6 + 4 + (8 + 3)
|
||||||
|
9 * 7 + 8 + 2 * 3 * (3 + (2 * 3 * 7 * 5 * 9) + 8 * 9 * 5)
|
||||||
|
((3 * 6) + 3 + 9) + 7 * 8 * 3 * 9
|
||||||
|
8 * 4 * (6 * 9) * 3
|
||||||
|
9 + ((5 + 3 + 4 * 3 * 9 * 6) * 6 + 9 + 3 + 8 * (5 + 4 + 7)) + 9 * 4
|
||||||
|
(4 + 6 * 3 + 2 * 9) * (6 * 9 * 4 + 7) + 8 + 8 + 6
|
||||||
|
(5 * 3 * 6 * 3) * 7 * (5 + 6 * 6 * 5)
|
||||||
|
4 * 6 * 8 + ((4 + 7 + 6) * 4 + (4 * 7)) * 8
|
||||||
|
6 + ((4 * 9 + 6 + 5 * 5 * 7) * 5 * 3) + 7
|
||||||
|
(8 * 4 + 8 + 9 * 9) + (5 * 6 + 3 + 6 * (9 + 8 * 7 * 6 * 8 + 6) + 5) * 9 + (6 + 6 * 2 + 2 * 4 + 8) * 5 * (8 + 5 + 2 + 3)
|
||||||
|
(8 * 2 + (7 * 9) + 8) + 3
|
||||||
|
2 + 9 * 6 + 5 * (3 * 7 + 8) + 3
|
||||||
|
((9 * 2 * 5) + (9 + 8 + 8 * 9) * 7 * 7 + 9) + 2 + 8 + 3 + (5 + 7)
|
||||||
|
5 + 9 + 5 * 4 + 3 + 5
|
||||||
|
4 + 9 * (6 * (7 + 7 + 9 * 3) * 5 + 3 * 3)
|
||||||
|
2 + 8 + 6 * 8 * (4 + (9 * 8) * 2) + 2
|
||||||
|
3 + 7
|
||||||
|
8 + 7 + 8 * (5 + 7 * 9 * 9 * 8)
|
||||||
|
6 + (3 + (5 * 3) + (9 + 6 * 9) * 4 + 8)
|
||||||
|
7 * 2 + (5 * 6 + 2 + 6 * 3 + (9 + 7 + 7 * 8 + 9 * 7)) * 8 * 7 * 7
|
||||||
|
(6 + 3 * 5 * 6) + (2 * 2 * 5) + 8 * 3 * 3 + 5
|
||||||
|
(2 * 8 + 6 * (6 + 3 * 2 + 7 * 7 + 6) * 5 + 5) * 3
|
||||||
|
(6 * 9 + (5 + 9 * 8) + 2 * (6 * 8 * 8 + 6 + 3) * 7) * (7 + 3 * 5)
|
||||||
|
4 * 2 + 8 * 9 + 3
|
||||||
|
8 * ((5 * 2 * 5 + 9 + 4) * 4 * 2) * 8 + (3 + 2 + 3 * 7 * 8 + 5) + 4
|
||||||
|
9 * 9 * 5
|
||||||
|
3 * 2 * 8 * (6 + 5 * 9 + 6)
|
587
2020/inputs/day19.input
Normal file
587
2020/inputs/day19.input
Normal file
|
@ -0,0 +1,587 @@
|
||||||
|
27: 116 44 | 127 69
|
||||||
|
19: 60 116 | 55 127
|
||||||
|
91: 127 13 | 116 127
|
||||||
|
11: 42 31
|
||||||
|
30: 80 116 | 100 127
|
||||||
|
53: 78 116 | 100 127
|
||||||
|
47: 116 129 | 127 76
|
||||||
|
21: 57 127 | 100 116
|
||||||
|
26: 86 116 | 28 127
|
||||||
|
86: 127 122 | 116 29
|
||||||
|
74: 127 39 | 116 105
|
||||||
|
41: 118 116 | 132 127
|
||||||
|
13: 116 | 127
|
||||||
|
115: 82 116 | 72 127
|
||||||
|
100: 116 116 | 116 127
|
||||||
|
5: 78 127 | 91 116
|
||||||
|
31: 101 127 | 121 116
|
||||||
|
134: 116 117
|
||||||
|
73: 123 116 | 62 127
|
||||||
|
69: 116 124 | 127 77
|
||||||
|
28: 71 116 | 66 127
|
||||||
|
14: 131 116 | 128 127
|
||||||
|
111: 127 59 | 116 117
|
||||||
|
6: 127 53 | 116 79
|
||||||
|
104: 26 116 | 65 127
|
||||||
|
61: 78 127 | 56 116
|
||||||
|
67: 127 30 | 116 130
|
||||||
|
32: 81 127 | 27 116
|
||||||
|
2: 116 117 | 127 72
|
||||||
|
128: 57 116 | 91 127
|
||||||
|
81: 127 96 | 116 51
|
||||||
|
38: 127 59 | 116 54
|
||||||
|
36: 22 127 | 107 116
|
||||||
|
35: 116 61 | 127 24
|
||||||
|
7: 116 100
|
||||||
|
18: 16 116 | 82 127
|
||||||
|
116: "a"
|
||||||
|
54: 116 116 | 127 116
|
||||||
|
84: 20 116 | 93 127
|
||||||
|
92: 38 127 | 111 116
|
||||||
|
64: 127 57 | 116 82
|
||||||
|
105: 116 43 | 127 110
|
||||||
|
44: 127 106 | 116 88
|
||||||
|
93: 33 116 | 56 127
|
||||||
|
82: 116 13 | 127 116
|
||||||
|
75: 2 127 | 9 116
|
||||||
|
65: 127 97 | 116 36
|
||||||
|
4: 5 127 | 98 116
|
||||||
|
1: 114 127 | 58 116
|
||||||
|
122: 54 127 | 59 116
|
||||||
|
70: 116 67 | 127 75
|
||||||
|
117: 127 127
|
||||||
|
68: 48 127 | 40 116
|
||||||
|
97: 127 95 | 116 113
|
||||||
|
132: 127 33 | 116 54
|
||||||
|
51: 23 127 | 30 116
|
||||||
|
119: 127 37 | 116 103
|
||||||
|
63: 57 127 | 59 116
|
||||||
|
34: 57 13
|
||||||
|
48: 116 73 | 127 47
|
||||||
|
23: 82 127 | 59 116
|
||||||
|
66: 127 82 | 116 78
|
||||||
|
95: 127 100 | 116 82
|
||||||
|
123: 117 116 | 82 127
|
||||||
|
24: 116 33
|
||||||
|
120: 49 127 | 99 116
|
||||||
|
103: 127 90 | 116 83
|
||||||
|
102: 72 13
|
||||||
|
58: 46 116 | 45 127
|
||||||
|
106: 56 127 | 117 116
|
||||||
|
85: 126 127 | 133 116
|
||||||
|
3: 74 116 | 85 127
|
||||||
|
20: 33 127 | 56 116
|
||||||
|
127: "b"
|
||||||
|
45: 116 102 | 127 18
|
||||||
|
126: 127 41 | 116 112
|
||||||
|
94: 116 87 | 127 21
|
||||||
|
114: 35 116 | 19 127
|
||||||
|
0: 8 11
|
||||||
|
99: 127 34 | 116 76
|
||||||
|
80: 116 127 | 127 116
|
||||||
|
50: 15 116 | 7 127
|
||||||
|
55: 127 91 | 116 59
|
||||||
|
90: 92 127 | 94 116
|
||||||
|
25: 57 116 | 54 127
|
||||||
|
124: 116 57 | 127 91
|
||||||
|
77: 78 116 | 78 127
|
||||||
|
56: 127 127 | 116 116
|
||||||
|
79: 116 59 | 127 57
|
||||||
|
12: 127 64 | 116 115
|
||||||
|
130: 17 127 | 33 116
|
||||||
|
8: 42
|
||||||
|
60: 116 72 | 127 59
|
||||||
|
113: 117 127 | 117 116
|
||||||
|
131: 16 127 | 56 116
|
||||||
|
46: 134 116 | 62 127
|
||||||
|
83: 6 127 | 50 116
|
||||||
|
33: 116 116
|
||||||
|
88: 116 57 | 127 54
|
||||||
|
118: 116 100 | 127 54
|
||||||
|
125: 100 116
|
||||||
|
121: 32 116 | 104 127
|
||||||
|
29: 127 17 | 116 57
|
||||||
|
101: 127 1 | 116 68
|
||||||
|
22: 116 117 | 127 100
|
||||||
|
43: 127 125 | 116 22
|
||||||
|
10: 29 127 | 63 116
|
||||||
|
112: 98 116 | 107 127
|
||||||
|
87: 80 127 | 57 116
|
||||||
|
129: 54 116 | 17 127
|
||||||
|
98: 116 80 | 127 117
|
||||||
|
57: 116 116 | 127 13
|
||||||
|
107: 127 72 | 116 59
|
||||||
|
40: 116 14 | 127 4
|
||||||
|
39: 12 116 | 84 127
|
||||||
|
133: 116 108 | 127 10
|
||||||
|
71: 127 56 | 116 54
|
||||||
|
76: 116 78 | 127 33
|
||||||
|
15: 127 59 | 116 78
|
||||||
|
42: 119 116 | 3 127
|
||||||
|
9: 127 72 | 116 100
|
||||||
|
72: 127 127 | 127 116
|
||||||
|
17: 13 13
|
||||||
|
16: 116 116 | 13 127
|
||||||
|
49: 53 127 | 25 116
|
||||||
|
62: 127 80 | 116 100
|
||||||
|
52: 72 116 | 33 127
|
||||||
|
37: 70 127 | 120 116
|
||||||
|
110: 89 127 | 87 116
|
||||||
|
96: 116 52 | 127 55
|
||||||
|
78: 116 127
|
||||||
|
108: 127 109 | 116 71
|
||||||
|
109: 116 59 | 127 16
|
||||||
|
59: 116 127 | 127 127
|
||||||
|
89: 57 127 | 33 116
|
||||||
|
|
||||||
|
babababababababaabbbbbabaaabbabbabbabbaa
|
||||||
|
abbbbbaababbbabbbbbaaaaaaaababbbaabbabab
|
||||||
|
bbaaaaababababbaaaaabbababbabaabaaaaaaabaaaaaaaa
|
||||||
|
aabaabbaaaaaabaaaaaaabaabaabbbbb
|
||||||
|
bbaababbaaabaabaababbaaaabaababbaabbbaababbaaabababaabab
|
||||||
|
bbabbabbabaabbaabbbbaabbbbaabbaa
|
||||||
|
baaaabbbabaaababbababbbbababbbbbaaaabaabaabbbbaa
|
||||||
|
aaaabbabbaaaabbbaabaaabbaaabbbbababaabab
|
||||||
|
bbbaabaabbaabaaaaaababbbbaaaabbaaabaaabbbbbbbbbbbababbab
|
||||||
|
aabaabbaaabaaaabbbbaababbaabababaabbbbab
|
||||||
|
bbaabbbbbaaabbbbbabbbbaaaabaabbaabbaabbabbababbb
|
||||||
|
aaabaabaabaaababbabbabbb
|
||||||
|
abbababbabbababbaaaaaaab
|
||||||
|
ababbaaaabbabbabaaaabbaaaabaaabbbaabbbbaabbbabbbbbbaabbabbabbaaaababaabaabbabbaa
|
||||||
|
abbababaabbbabbbaaababbbabaaababbaababaabaaaaaaaaabababbabababab
|
||||||
|
baabbbbabaababbabaababbbababbbaa
|
||||||
|
aaabaabbbbbbaaaabaaaaabaaaaaabaaaababbaaaaaabaab
|
||||||
|
babababbabaaabbabbbbbbbabaaaabbaabababaaaabbbaab
|
||||||
|
aabaabbaabbabaababaaaaaabbbababaaabbbbab
|
||||||
|
aabaaabbbaabaabbabaaabbabbababaabbbbabbb
|
||||||
|
abababbaaaabbababaaaaabaaaaaabbaabbbaabb
|
||||||
|
bbaaabbbbaababaabbbaabbbabbbababbbbabbaa
|
||||||
|
babaaaaabbbbbbabbabaaaba
|
||||||
|
baaababbaabbbabbaaaababbababbabbbbbbbbbbaabbbaaaaaababbbbbaabbbb
|
||||||
|
bbbbaaabbaaaabaabbbbbbbabaaababaabbbbaaa
|
||||||
|
bbabbabbbbabaabbaaaaabab
|
||||||
|
baaababbbbbbaababaabaabbbbbbaaaaaaaaababaabbbaabaabaaaba
|
||||||
|
baababaaaababaaaaaaabbbaabbbbbaabaaababaaabbabaaaaabbaaa
|
||||||
|
abbbbbbbaaabaababaaabbaa
|
||||||
|
bbbabaaaabbabbbaaaaabaaabbbaabaabbbaaabbbabaaaba
|
||||||
|
abaabbaabaaabbabaaaaaaaa
|
||||||
|
aaabaabbaabaaaabaaaabbaabbabbaab
|
||||||
|
bbaabaaaabbaabaaababaabb
|
||||||
|
bbabaaababbaaabbbbabbabbabaaaaabbaaaabbbabbababbabbbbaaa
|
||||||
|
abbaaabbababbabbbaaaabbababaabab
|
||||||
|
aabababababbbaabaaabababababaaaaaaabbaaabbabaaba
|
||||||
|
abaaaaabbbbbbaabbaaaabababaaaabb
|
||||||
|
bbbbabbabababbbbaaaaaaba
|
||||||
|
aaaaaabbbaabbbababbabbbabaaabbbbabbabbaa
|
||||||
|
bbbababbbababbbbbbbbbabaabbaabaababbaaaabbababbb
|
||||||
|
abbabbabaaaabaaabaaabbbaabbaabababbbaabaaaaaaaabbaaababa
|
||||||
|
abbbabbbabaababbaababaabbabababbaaaaabaababaabaabaabbabbbabbbbbb
|
||||||
|
bbbaabbbbbbababbaaabbabaabbbbababbaababbabbabaaababaabbb
|
||||||
|
bbaaaaababbaaaaaabababaaaababbbabaabababbabbbaaa
|
||||||
|
aabbbabbbbabaabbabbaabba
|
||||||
|
ababbababbbbaaaabbabbaab
|
||||||
|
abbaaaababbbbbabbaaabaaabbabbabbbabababbabaabbba
|
||||||
|
bababaabbbaabaabbaaabbaa
|
||||||
|
bbbaaaabbababaabbbababab
|
||||||
|
babaabbbbaaababaababaaabbbaabbab
|
||||||
|
bbbabaaabaaaababbaabaaabbababbbbbaabbaab
|
||||||
|
abbbbbbbaababaabaabababb
|
||||||
|
abbbabaabababababbaaaaabaaabbabb
|
||||||
|
baaabbabbbbaababbbaabbba
|
||||||
|
bbbbaabababaabbabaabbbaaaababbab
|
||||||
|
abbaaaaaaabaaabbbaaabbababbaaaaa
|
||||||
|
aaaabbabaababbababbbbaababbbbaaa
|
||||||
|
abbbbbbbbbbaaabbbabbabbb
|
||||||
|
abaaababbababbbbbabaaaabbabbaabbaaaababb
|
||||||
|
bbaabbbabbbabbbbabaabbbb
|
||||||
|
babbaababbbbbbabaababaaabbaabaababaaaaba
|
||||||
|
bbbaaaabbbbbaaabbaabbaba
|
||||||
|
ababbaaabbbbbaabbbaabbbbbaabbbbb
|
||||||
|
baabbbabbaababbbbbbabbbb
|
||||||
|
abbaabaaaaaabbabbaaabbabababbaaaababbbbbaaaababb
|
||||||
|
bbbbbaabbbbaaabbbbabaaba
|
||||||
|
bababbaaaababaaabbbabbba
|
||||||
|
bbbbaabbaababaabababbbaa
|
||||||
|
bbbaaaaaabaabbabaabaabaa
|
||||||
|
bbbaaabbbbabbabbaababbbb
|
||||||
|
aabababababbaabaabbaaaaaabbabbabaabbabab
|
||||||
|
babbbabbaaababbbbbabaabbabaaaabb
|
||||||
|
aababaaabbbbbaaabaabbabb
|
||||||
|
bbbbbaaabaaabbababbaaaaaabaabaaa
|
||||||
|
bbaaaaaababaaabbaabbaaaa
|
||||||
|
baababbbaaaabbaaabaabbba
|
||||||
|
aababaaaabababaaaaaabbabababbbbb
|
||||||
|
bbaababaabbababbbbbbbaaaabbbaabbabbbaaaa
|
||||||
|
bababbbbaababaaabaabbbbb
|
||||||
|
bbaaaaaababaaaababababaaabaabbba
|
||||||
|
bbbaaaaaabbaabaaabbaabaaabbabaaababbbabaaabbaaababaaabbb
|
||||||
|
aabbbbbbbbbaaaaaaabbabbb
|
||||||
|
bbabaababbbaabaabaaaabbaabbabbbbbabaabbabbbababaaababbababbabbbabbabbbbabbabbbababbabbaababbaaaa
|
||||||
|
abaaababbabbbaabbabaabbaabaaabbaabbbaaabbaabbaabbbaaaabb
|
||||||
|
aabaabbbbbbaababbabbaababbbbbbaa
|
||||||
|
baabaaabbbbbbaaaabbbbbabaabbbaba
|
||||||
|
bbbbbbbabbaababbabababab
|
||||||
|
aaabaaabbbbbbababaaababbbbbbbbabaaababababbbbaaaabaababaaabaabababbaabba
|
||||||
|
abababaabbaabbbbaabbaaaa
|
||||||
|
bababbbbbbbbbaabbaaabbaa
|
||||||
|
abbbbbbaaabbbaaaaabbabab
|
||||||
|
baaaababbbbaaabbaaaaaabbababaabb
|
||||||
|
abbbbbabbbabaabbbabbaabb
|
||||||
|
aababbbabbbbaabbaababbaa
|
||||||
|
bbbbaabbbbaaaabaaabbabaa
|
||||||
|
abbaaaabbbaaabaabbbababbbbbbbbbabbbaababbaababbabababbabbbbabbbabbaaabba
|
||||||
|
aaabbabaababaaaaabababbaabbababbbbbbbababbbbbabb
|
||||||
|
abbbbbababbbaaabaabbaaba
|
||||||
|
abbbbbbaaabbaaabaabbbbbaaabbaababaaaaaaa
|
||||||
|
ababaaaaaaababbbaaabaaaa
|
||||||
|
babbbbaaabaaababbbbbbbaa
|
||||||
|
abaaaaabbabaaaabbbbbbbaa
|
||||||
|
bbbaaaabbbbbabbababbbbbb
|
||||||
|
baabbaaaabaabbaabbbbbbaaabaaabababbbbabaabbbabbaaaababbaaaababbaaabbaaababbbbaba
|
||||||
|
bababbbabaaababbbabbbbaaaaaabbbaabbabaab
|
||||||
|
bbbbaabbbababbbbabbbabbbaabbbbba
|
||||||
|
aaabbbbaabbbaaabaababbaa
|
||||||
|
aaabbabababbbabbbbbbabbb
|
||||||
|
ababaaabbbababaabbbbbbbbbabaaabbabbbbbbbababaabb
|
||||||
|
abbbaaababbbbabaabbaaaaabbbabbaaaaabbabb
|
||||||
|
baabbbababbabaaabbbbbaaaaaabaabaabaaabbababbaaab
|
||||||
|
aabaabbabababbbbbbbababbbbabbbabbbaaabba
|
||||||
|
baaababbbbbaabaabaabbaba
|
||||||
|
abbbbabaabbbaaabbaabbbabbbbbaaabbbababab
|
||||||
|
babaaabbabaabbababaaabaa
|
||||||
|
abaaabbabaaaaaababaaabababaaaaabaabababb
|
||||||
|
abbbabbbaaababbbababaaaabbabababbbaabbab
|
||||||
|
aaaaabaaabbbbbbbbaaabbbaabbbbbbabbaabbabaaabbaab
|
||||||
|
bbbbbbbabbbaaabbaaabaabaababbabaabaaabaaabaaabbb
|
||||||
|
abbbbbbaabbabbbabbbbabbabbbbabbaaaaababb
|
||||||
|
bbbbbaaababbbaabaabbbbbbbbbbbbbbbababaaa
|
||||||
|
abbbbbbbbbbbbaabaabbaaba
|
||||||
|
abbaaaababbbbbaaabbabbbaaabaabbabbbbbbbababaabaa
|
||||||
|
abaaabababbbbabaabbaabbaaabababaaabbbabbabbababaabbbaaaaabaabbaaaaaaabba
|
||||||
|
bbaaabbbaabaaabbbbbaaaaababbabab
|
||||||
|
baaabaaabaababbabbabaaabaaabbabb
|
||||||
|
bbbbabbaabababaaabbbaaba
|
||||||
|
aabbbabbbaabbbbaaaabaaab
|
||||||
|
abaaabbabbaabaabaababababbabaaabbbbbbabbabbbbbbbbbbbbbbbababbbaabbabbaababbaaaba
|
||||||
|
bbbaabbbabbbaaabbbbbbabaabaaaaba
|
||||||
|
abbbbabababbbaabaaaababa
|
||||||
|
abbabbbaabbbbbbbaaabaabbbbbbaabaaabbabaabaabbbbb
|
||||||
|
babbbabbbbbaaabbabbaaaaaabbaaaabbbbbbbbb
|
||||||
|
bbbbaaaaabbabababbaaabbaabaaabbaababababbbbabbbabbaaaabaabbaabaaabbababb
|
||||||
|
abbabbbabaabbbabaaabbaab
|
||||||
|
bbaababbbaababaaaabaabab
|
||||||
|
bbbbababaaabababbbabbbbbbabababaabbaabaababbaaab
|
||||||
|
baaaababaaaaabbaaaabbbbbbbaaaaabbabbababaaaabbbb
|
||||||
|
baaaaaabbbaaaaabaaabbaabbabbbaaababbabba
|
||||||
|
abbbbabababbaabaababbbab
|
||||||
|
aaabaabaaaabaaabbbbababbaabbaaaabbbabbaa
|
||||||
|
aaaaaabbbbaaabaaaaaaabaabbbabababaabbaaa
|
||||||
|
abbbbbbbabbbbabaaabbabaa
|
||||||
|
bbaaaaabbaababbabbbaabba
|
||||||
|
abbbbababaaababbbbbbabab
|
||||||
|
abbababbababbbabaabbaabbaaaaaaaaaaabaaaa
|
||||||
|
bababbbbbbaaaaaaabbbabba
|
||||||
|
baaabbabbbbbabbabaabbaababbbaaaa
|
||||||
|
baabaaababbbaaabbaabaaabaababbbbababaaba
|
||||||
|
aaaabbaabbbaabbbbaabaabbbaabbaaa
|
||||||
|
baaabaaaabbbbbabaaabaababaabababbaaababa
|
||||||
|
abbabbabbaaaaaabbaaaabaababaaaababbbaabb
|
||||||
|
bbaaaaaaaababbbaaabaaaabbaaaabaababaabaa
|
||||||
|
baaaaaabaaaabbbaaabbaaba
|
||||||
|
aababababbbbbaaababababbbbaaaaaabbaaabba
|
||||||
|
bbbaaabbbabababbbababbaaaaabbaaa
|
||||||
|
baababaabababaabbbaaaabb
|
||||||
|
bbaababbaababbbaaababbbb
|
||||||
|
aaaaaabbaabbbbbbbbaaaaabbaaaababbbbababbbbaaaababababaaaabbbbaab
|
||||||
|
baaabbabababbabababaabbaabbaabaaabaababbbbabaaabbabbbaaaaaababbabbabbbabaabbbaab
|
||||||
|
abbbaaabbababbbbabbbabba
|
||||||
|
aababaababbbbbbbabbababbbbbbbaba
|
||||||
|
abbbabbbbabaaabbbbaabbbbababbaaaaabababaabbaababbbbbbbaababbaabbbbbbbbaaabababbb
|
||||||
|
bbbaaaaaaababbabbbbbabaabaabbbabaabbbbbbbababbbb
|
||||||
|
baababbabaaabaaababaaabbbaabaabbbbbaaabbbabbabaaababaaba
|
||||||
|
aaabaaababbaaaaaaaabababbabaaaba
|
||||||
|
abaaababaabaaaabaaaabbbb
|
||||||
|
bbbaabaababbaababaaaaabaaaabaababbababab
|
||||||
|
bbbbbabaabbaaaaabaaaaabaabaabaab
|
||||||
|
baaaabaaabbabaabbbbbbbbb
|
||||||
|
bbaaaababbbbbbabbaababbaabababbabbbbaaaaabbbbbaababaabaabbbaaabaaaaababbababbbaaaaababba
|
||||||
|
bbbababbababbabbbabbbaabaabaaabbbababaabaabbaaaa
|
||||||
|
bbbbaabaaaaabbabbababbab
|
||||||
|
baabaaabbabaaaaababaaaba
|
||||||
|
abbbabaabaabbbbaabaababa
|
||||||
|
abbbbbaabbbbbbabbbbbaabbbaaababbabbabaaaaabababb
|
||||||
|
bbbbaaabaaababbbaaaaabab
|
||||||
|
bbbaaaaabbbbaabababbbbba
|
||||||
|
abbabbbaabbbabbbbaaaabbababbaaababbbaaaa
|
||||||
|
aaabbaaababbbabaaaababaa
|
||||||
|
ababaabbabaaaaaaaaaaababbbaaabbbbbbababababbabbaaaaabaabaaabbbab
|
||||||
|
baababaabbbaabaabababbaabaabbbbabbbbbabb
|
||||||
|
abbbabbbaabababaabbbaabb
|
||||||
|
baaaabbaaababaabaabaaabbabbabaabbaaabbbababbbaaa
|
||||||
|
baababaababbbbaabbaaaaaabbbbaaababaabbaaabaaaaabaaaaabbb
|
||||||
|
abbabbbbbaaabbbbabbbaaaa
|
||||||
|
abbbbabababaaaaaabbaaaaababbbbbabbbbabab
|
||||||
|
bbbaaabbabaaaaaaaaaaaabbababaaaabbaaaaabaabbaaaa
|
||||||
|
bbbbaabbbababbaaabababbabaaaabaabaabaaaa
|
||||||
|
baaababbabbaaaababbabbaa
|
||||||
|
abaaaaabbbabaaabaabaaaabaaabababbbaaababaaababaabbaaabab
|
||||||
|
bbbaaaabbababbbbababbbba
|
||||||
|
baaababbbababaababbbbabb
|
||||||
|
aaabbbbbabbabaababbaaaabbaabbaba
|
||||||
|
baabaabbaaababababbbbbaababababbaabaabbaaabaaababbabbbaabaabbabbaabbabba
|
||||||
|
baaaabbbbabaaaaabbabaaabaabaaaabbbaaaababbaaaabaabaabaaaabaabaaaabbbabbaaabbaaab
|
||||||
|
bababbbbbbbbaabbabbababbbabaaaaabbbabaab
|
||||||
|
baaabbababaabbababaabaab
|
||||||
|
abbaaabbbbbbaabaabbbbababababbbbababaaba
|
||||||
|
bbbbaabaabbaabbaabaabbbb
|
||||||
|
baababbbbbbbbababaaaabbbaaaaabbb
|
||||||
|
aaaabbabbabbaababbabaaababbaabab
|
||||||
|
aababbbabaabaabbbbbaabaabbabbbaa
|
||||||
|
abaabbaabbaabbbbaabbaabb
|
||||||
|
bbbaaaabaaabbbbabaaabaaabbababbbaabbbaab
|
||||||
|
abaabbaaaaabaabbbbbbbababbbbbababbbaabbbbbaabbba
|
||||||
|
baababbbbbbababbaaaaabaababbbbba
|
||||||
|
abbabaaaaababaabababbaaabbaaabbabaaabbaa
|
||||||
|
abaaabbaabababaaaabaaabbbababbbbbaabbbbbaabbabbaababbbab
|
||||||
|
bbaabbbbbbabbbbaabbaabaababbbaababbababbbbabbabaabbaabbbaabbaaaa
|
||||||
|
baabababababaaaaaabbabba
|
||||||
|
babababbbbaaabaaabaabbbb
|
||||||
|
abbabaaaaaaaabaaabaaabbababbbbaabababaabaaaaaaaaaabbbbbaaaaabababbababba
|
||||||
|
bbabbabbabaaabbaaabbabab
|
||||||
|
aabbbbbbbbaababbbaaabaaaaabaaaba
|
||||||
|
bbaababbabbaaaabababaaba
|
||||||
|
bbabaabbbaabbbbbabaaabaabbbbbbaa
|
||||||
|
bbbabaaabbbaaaababababbaabaaababbbbaaabbbbbabbaabbabaababaaababa
|
||||||
|
abababaaaababbbababbabab
|
||||||
|
bbbbbabaabbababbbbabbabbaabbaaaa
|
||||||
|
babbaabababaaaabbbaabbaa
|
||||||
|
bbbaabbbbababababbabbaab
|
||||||
|
bbbaabaaabaaaaaaababbbbbbbaaaabababbabababbaaabbababaabbabbaabaabbbabbaa
|
||||||
|
bbbbabbabababbaaaaaabaab
|
||||||
|
babbbaabbababbabaaababbbaaababbaaabbaabb
|
||||||
|
abaabbababaababbabbbaaabbbbbabbb
|
||||||
|
bbbabaaabaaaabbababbbabbabbbabbbabbbbbbabbabbaaa
|
||||||
|
bbabaabbaaabaabaabbabbabaabaaabbaabbbbaa
|
||||||
|
bbababaabaaaaaabbabbbbaabbaabaabaabbbababbaabbba
|
||||||
|
abbaaabbbaaabbbbbabbbabbaaabbbaa
|
||||||
|
bbbabaaaabaaabbaabbabbaa
|
||||||
|
abbbbbbaabbabaaaababbbab
|
||||||
|
abbbabbbaaaabaaaabbbbbaababaaaababbabbbaaabbbbba
|
||||||
|
abbabaabbaaabaaaaabaabbbaaabaabaabbbaaaa
|
||||||
|
bbbaaaaaabbaaaaabaabbbaaabaaaababaaaaabb
|
||||||
|
baabbbbabababbbabababaabbaaabbabaabbbbaa
|
||||||
|
aabaabbbabbabbabbabbabba
|
||||||
|
babbbabbbbbaabbbaababbbabbabaaababbaabab
|
||||||
|
bbbaabaaaaaabaaaabbbabaababaaaaababaabaaaabbaaabbabbabbb
|
||||||
|
aabaabbbbaabababaaaaabbb
|
||||||
|
baababaabaaabbabbaaabbaa
|
||||||
|
abababbabaabbbabbbaaaabaabbaabbabbbbabbb
|
||||||
|
abbbabbbabbababbbababaaa
|
||||||
|
bbabbbbaabababbaabbabaabababbaaaaabbabaabbbbabab
|
||||||
|
aaabbabababbbabbaabbbbab
|
||||||
|
bbaabababbaaabbbaabbbbab
|
||||||
|
baaabbaababbbbbaaabaaabaabaabbbababbaaab
|
||||||
|
bababbbbbbbbaabbbbbbabaa
|
||||||
|
bbaaaabaaaaabaaaabbababaaabbbaab
|
||||||
|
aaabbaabaaaabbabbbaaabababbbbababbbaababbbaaaabbabaabbab
|
||||||
|
ababbaabaabbbbbbbabaaaabaaaaaaab
|
||||||
|
baaabbbaaaabbabaababbbab
|
||||||
|
bbbbaababaabaaababbbabbbbaaabbbbaaaaaabbbabaabaaaabbabbb
|
||||||
|
bababbaaaaaabaaabbbaababaaaaabbaabbaaaaaaabaaaaaabaabbbbbabbbbababbbaabb
|
||||||
|
aaabbababaaabbbbabbaaaaaaaaabbbaaaabbbaababaabbb
|
||||||
|
aabaaaabaaaabbbabababababbbbaabaaabaaaaa
|
||||||
|
aaaabbaaabbabbbaabbabaaababababbabbabaaaabbaabbb
|
||||||
|
aaaabbbbbbababbaabbbaabbbabbbbaaabbaaabbbababbaabbbababbabbbababbaababbbaababbaaaaababbb
|
||||||
|
babababbbbabaabbbbaaaabb
|
||||||
|
abaabbabaaabaababbababaabbabaaababbbbaaa
|
||||||
|
aaaaabaabaaaabaaaaabbaaa
|
||||||
|
baaabbbaabbaaabbaababaabbbaaaaaaabbbaabb
|
||||||
|
babaaaabbaabbbabbbbabaab
|
||||||
|
baaababbbbbbbaaaaaaaabaaababbbabaaaaabab
|
||||||
|
bbbaabaabaabbbabbbaabbba
|
||||||
|
aaaaabbbabaabbbaabaaabbaabbbbbabaaaabaabaabbabbbbbbabbbbbbabbbbaaaaabbaa
|
||||||
|
abaaaaabbabbaababbaababbaaaaabaaababbaaaaaaabbbbbaabbaaa
|
||||||
|
babaaaabbbaababbbaabbaaa
|
||||||
|
babbbbaaabaabbaababaaaabbbababaabbbbbbaababaabaa
|
||||||
|
baaaaaababababaabbbabbba
|
||||||
|
bbaaabaabbaaabaaaabaabbaabbaabbaaabbaaaa
|
||||||
|
aaabbbbbaaabaababbbbbaababbbaaababbabbbabbbbbbbbaaaababbabbbaaba
|
||||||
|
bbaabaabbbbbbaaabababbab
|
||||||
|
baaabbbbbbbbbabbbaaaaabb
|
||||||
|
aabbbabbbaaaabbbaabaaabbaaabaabaabaabbbbbaabaaba
|
||||||
|
abbaaaaabbbbbaaaaaaabbbababbabba
|
||||||
|
bababbbaababbabaababaaab
|
||||||
|
bababbaaabbbbbabbbabbaab
|
||||||
|
bbabaabbaaabaababbbbabbaaaaabbbaaaabbbbabbabbaab
|
||||||
|
bbabaabbbaaaabbaabbbbbaababbbbaaaabbbbba
|
||||||
|
babaaaabbababababbaaaabababbaaab
|
||||||
|
bbbbaabaaabababaaabbbbbababbbababaaaaaabbbaabbabaaabbbaa
|
||||||
|
baaabbbbabbababaabababbaabbaabababaabaaa
|
||||||
|
bbabaaabaababababaaaababbbbbbbababbaababaabbbaab
|
||||||
|
bbbbbabbaababaaabbbbbababbbababa
|
||||||
|
bbbabaaaaabbbbbbbaabbaab
|
||||||
|
bbbbabbaabbbbbababaaabbaaaabbbbbbbbbbabababbaabb
|
||||||
|
abbabbabbbbbabbabaaaaaaa
|
||||||
|
bbaabaabbabbbbaabbbabbaababbbababbababbbbbbbabbb
|
||||||
|
abababbbaaaababbbabbaabb
|
||||||
|
bbabaabbaaaaabaaabbabaabaabaaaba
|
||||||
|
bbabbbbaaaabababbbabbbbb
|
||||||
|
bbaaaaabaaabbabaabbaabaaaabbbabaaabaaaaa
|
||||||
|
baaaaaabaabaaabbbaabababaaabaaababaaabbbbabaabaabaabbaba
|
||||||
|
bbbababbbaababbabaaaabaabbbaabaaabababbbababbbbb
|
||||||
|
bbaababbbabbbabbaababbbababababbbbbaaaba
|
||||||
|
baaabababbabbabbabbbbabbbabaaabaaabbaabababbbbbbbaabbbaa
|
||||||
|
ababaaaabbbbbabaabaabbabababbabbaabbabba
|
||||||
|
bbabbabbbabababaaabbaaba
|
||||||
|
baaabbbaabababbbbaabbabbaabbaabbbababbbaabbaaabbbabaaabbaaabbbab
|
||||||
|
aabababaabaaabbaaaaababb
|
||||||
|
babaabbaaaabbbbbaaababaa
|
||||||
|
aaabaaababbbbabbabbabaababababab
|
||||||
|
abaaaaaabbabbabbababbaabbabaabaa
|
||||||
|
aaaaabaaabababaabbababba
|
||||||
|
babbaabbaaaabababbabbbbbaaaababa
|
||||||
|
bbaabbbbbababaababaabbbb
|
||||||
|
bbaaaaaabbbbaabbbbbaaabbaaabbaabaababbbb
|
||||||
|
bbabbbbaaababbaaabbabbaaabbbaabaaababbab
|
||||||
|
bababababaaaabaaabababbb
|
||||||
|
baaabbbaaabaaaaaaabbbbba
|
||||||
|
baabbbbabbbaabaaaaaabbababbaaaaabbaaabbb
|
||||||
|
babaabbabbbbbabaabaaaaaabbbabbaaabaabbba
|
||||||
|
babababbbabbbbaaabbaaaababaaaaabababbaaaaaabbbabababbbabababbbbbbbbbabbb
|
||||||
|
aabaabbbaaabbbbaabbabbabbabbababbaaaaabb
|
||||||
|
baaabaaabaaabbabaaaabbabbbaabbaaabaabaaa
|
||||||
|
aaabaababbbbbbabaabbbbbbaaaabaab
|
||||||
|
aabbabbbbbbbbbbbababbbabaaabbbaa
|
||||||
|
bbbaabbbababbababbbbaaabbababbbabbababba
|
||||||
|
bbabbbbabaaabaaababababbaabbaaaa
|
||||||
|
abbabbabbaaababbbbbaaaba
|
||||||
|
baaabbbabbbbabbabbbbabbb
|
||||||
|
abbbabaabbaabaaabbbaaaababbababbabbbaaaaaabbaabb
|
||||||
|
bbbbbaaabababbbabbbaaaba
|
||||||
|
baaaababbbaababbaababbaa
|
||||||
|
baabbbbabbaabaaaaabbaaba
|
||||||
|
abbbabaabbbaababbbabaaabaaaabbaabbabaaba
|
||||||
|
bbababaabbbabaaabababbbbabaaabbb
|
||||||
|
ababbaaaabbbbbabbbabaaba
|
||||||
|
bbbbaabbbbbaaaabbbaabbbaaaabbabb
|
||||||
|
bbbbbbababbabbbbabbaaaababbbbbbbbbabbbbb
|
||||||
|
abbaababbbaabbaaaaabbbababaababaabaaabaaaaaababb
|
||||||
|
baaabaaabbbbabbababababaaabaaabbabbaaabbbaabbabb
|
||||||
|
baabbbaaaaaaabbaabaaaaababbabbabbbaaabab
|
||||||
|
ababababbabbaabbbabbabbbbabaaaaaaaaabbbb
|
||||||
|
baababbabbbaabbbabaaabbaabbbabba
|
||||||
|
bbaabbbbbbaababbbabababbbbbaaabbabbaaaaabbbbbbbbbbbbabaaabbbaaaa
|
||||||
|
baaaaabaaabaaaabaaabbbbaababbaabbbbbbabaaababbaa
|
||||||
|
abaabbaaabaababbbbaabbaa
|
||||||
|
baaabaaabbaaaaaababaabab
|
||||||
|
bbbbaaabbabababbbbaaabba
|
||||||
|
aaaaaabbababbabbabbabababbabaabbaabbabbbbbbaaababbabbaba
|
||||||
|
bbbbbabababaaaabaabbaaaa
|
||||||
|
baaaabaaaaabbbbbbababbbbbbbaabbbbaaabaabababbbaa
|
||||||
|
bbaaaabaabbbbbaabbaaabaaaababaaabaaaabaababbaaab
|
||||||
|
bbaabbbbbbaaaabaaaabbbbbbbaaabaaababbaaaabbaaaabaabaaabaabbbabbaababbbab
|
||||||
|
bbbbaababaaabaaaaabbbbba
|
||||||
|
aaabbbbaabababaabbaababaaaabababaaaaaaaa
|
||||||
|
bbaabaabaaaabbbabababbaaabbbbbaabbabaabaaaabbbab
|
||||||
|
aaabaaabbbaabaaabaaabbababaabbabbbabbbaa
|
||||||
|
abbabaababbabbbabbbaaabbbbbababa
|
||||||
|
aaabbbbbaabaabbababbbbba
|
||||||
|
baaaabaabbaababbababbbba
|
||||||
|
bbbbbbabbabbbaaaababababaababbbaaababbbabaabbbbaabaabbaaabbbbaaa
|
||||||
|
abbabaabbaaabaaabaabbaaabaabbaaababbbbbbbbbbaabaabaabbab
|
||||||
|
abbbbbbbbbbababaaaabaaaaabaababaababbbbababbaaaa
|
||||||
|
ababbabababbbaababbabbbaabbabbbbbbabbaaa
|
||||||
|
baaaabaababaabbabbaaaaaabbbaaaaaabaaabababaaaabbbabbaaaa
|
||||||
|
abbbbbaababbbaababbaaabbbbaaabbbbbababab
|
||||||
|
aabaabbaabbbbbababaabaaaabbaaabaabbaaababbbbabaaabbababbabbbbabaabbbaaaaaaabaabb
|
||||||
|
babbaababababababbaabbba
|
||||||
|
abbabaabaababbbababaabaa
|
||||||
|
bbaabaaabaabababbaabababbaaababbbbbaaaabbabbbbbbababbbbaababbbbbbabbbaba
|
||||||
|
aaabaaabbbaaabbbbbaaabaabaaaababbbabbbabababababbbbabbaa
|
||||||
|
bbbbbbaaabbbabaababaabaaababbbabaaabbbbababaaaabbbbbbbbabaaababbbaaabaabbbbbabbaaaabaaba
|
||||||
|
aaabbbbabbbaabaaabbaabaabaaababaaabbbaab
|
||||||
|
abbaaabbbbbbaabbbaababaababbbbba
|
||||||
|
bbaaaaabbbbabaaabaaabaab
|
||||||
|
bbbaaaaababababbbaaabbbbbaababbabaabaaaaababbbbabbababba
|
||||||
|
ababbaaabbbbbbbaabaaaaaababaabaaabaaabaa
|
||||||
|
baababbbbaaababbaabbbbba
|
||||||
|
babbabbbabbabbaabababbbbaaaabbbbbbbbaaabbabbaabaaababbab
|
||||||
|
bbabbabbabbaaaabbaabbbaaaaabaaababbbbbabbabbabba
|
||||||
|
bbbbaabababababbbabaabab
|
||||||
|
abbbbabbababbaabaabbabab
|
||||||
|
aaabaabbbbbabaaaaababbab
|
||||||
|
baaaaabaabaaabbabbaabbbbbaaabbaa
|
||||||
|
bbbbaabaababbababbbabbab
|
||||||
|
aababaaabbbbbbbabbbababbbabbaabbabaaabbb
|
||||||
|
aabbbaaaaaaaabaabaaaaaabaabbbbbbaabababb
|
||||||
|
aaaaaabbbaabaabbaabbabba
|
||||||
|
aaaaabbaaaabaabbabaababa
|
||||||
|
aaabababbbbaaabbabbaaabbbbbaaaaababaaaaaababbababbbabaab
|
||||||
|
abaababbabaabbabbbbaababbbaabbba
|
||||||
|
aababaaabbbbbabaabbabbbbabbabbbbaaabbbbbabbababbbbaaabababaaaaba
|
||||||
|
aaabaaababbababbaaaabbbabbbbabaaaabbbaba
|
||||||
|
bbababbbaaabbaababaabbbbaaaabbbabaaaabbababbabbbabbaaaaaabbaaabababaabba
|
||||||
|
aaaabbaabaaaaaabbababbbbaababbaa
|
||||||
|
abaababbaaabbbbabbaabaabbbbbaabaababbbabbabbaaab
|
||||||
|
aababbbbaabbaaaabbaabbabababbabaaabaaaaabaaaabbbabababab
|
||||||
|
babbbabbbbbaaabbaabbabbb
|
||||||
|
bbaaaaaaaabbbabbaabaabbabbbbaaaabbababba
|
||||||
|
bababbbbbbbaabbbbbbabbab
|
||||||
|
bbbaaabbabbbbbaaababbbbb
|
||||||
|
abbbbbbbbbbbbaabaabbabbabbbbbabbaabbabbaabaabaababbbabbbbbbbbbaabbbabaaaabbbaaba
|
||||||
|
aabbbbbbaaaaaabbbbbbaaababbbbbabbbaabaaabbbbbbbb
|
||||||
|
bbaabababaababbbaaabbbab
|
||||||
|
bbbbbabbbbbbaabababbabbb
|
||||||
|
bbabbabbabababbaaaababbbbaabababbaabbabb
|
||||||
|
aabbbbbbbaaabbabaaabbbbbbaabbaaaaaaabbbb
|
||||||
|
bababbbaababbaabbaaababbabbabbbbbababbbaaaabbbbbabbabbaa
|
||||||
|
aabbbaaaaaaabaaaaababaaababbbbabaabaabab
|
||||||
|
abbaabaaaaabaaabbbaaabbbaaabbbbbbbbbbbaaaabbaabaababbbbb
|
||||||
|
bbbabbbababababaabbabbbaaaaaabaaaaaaabaabbbbaabaaabbabaabaababbbaaaaabaaabbbbbbbbaaabbaabaaaabaa
|
||||||
|
baabaaabbaabbbaaaaabbbaa
|
||||||
|
babaaaaaabbabbababbbabba
|
||||||
|
bbbbaabbbbabbbbaaaabbbbb
|
||||||
|
aabaaabbbabbbabbbbabaabbaabbbabbbbaaabaabababaaabbabbaaaabbaabbaaabababb
|
||||||
|
bababababbbbaaaabaabbbbaaababbaaaaabbaab
|
||||||
|
bababaabbaaaababaaaaaaba
|
||||||
|
abbababbbabbaabababbbbaaaabababaaaabababbababaaa
|
||||||
|
abbaabaaabbabaabbbaaabbbbaaabbbb
|
||||||
|
abaaababbbaababbabbbabbbaaababaa
|
||||||
|
bababbbbabbbbababbbabbab
|
||||||
|
baaabbbababbbabbaabbbbba
|
||||||
|
aaaabbbabbaaabaaaabbbaaabbababba
|
||||||
|
bbbaaaabbbabbbbaabbbabba
|
||||||
|
abaaaaabbbbaaaaabbabaaabaabbabbababbbbbb
|
||||||
|
aaaaabbaaaabababbbbaaaba
|
||||||
|
ababaaaaabaabbabbbbaababbbbbbbaababbaaaa
|
||||||
|
babbbabbabaaaaaabababababaabaababbbabbaa
|
||||||
|
aaaaaabbaaabaababbaaabba
|
||||||
|
baabbbaabbababaabbbbaaaabbaabaabbabaabbbaaaababa
|
||||||
|
abbabaaabaaaabbbaaaaabbb
|
||||||
|
aababbbaabbbbbabbbababaabbbaabababbbabaaabbbbaab
|
||||||
|
abbabaaababbabaaabbabbabbaabbbab
|
||||||
|
bbabbbbaabbbbbabbbaabaabaaabaababbbabaababaaabbbabbaabba
|
||||||
|
abaabbbabaabbabababaaabbbaabbabaaaababaababbbaabaababbab
|
||||||
|
abababbabbbababbabbbbabbbabaabab
|
||||||
|
aaaaabbabaaabaaaabaaabaa
|
||||||
|
aaabbbbabbabbabbababaaaaaaaaabaabaabbbbb
|
||||||
|
ababbababbbbabbabbbaaaaabbabbaba
|
||||||
|
abbbbbbababbbbaaabbabaabaabababb
|
||||||
|
bbaaabaaaaaabaababaabbabababbaaabbaababbaaabaababbaababbaabababbbaaababaaabbaaabbbbbbaaa
|
||||||
|
aaaabaaabaababbbabbbbbbaabaabaaa
|
||||||
|
bbaabaabaababaaaabbbabaabbaabbab
|
||||||
|
abbbabaaaaaaaabbaababbbaabaaaaababaaaaaabbaabbaa
|
||||||
|
abbabbababbbabbbabbbabbbaaaabaaabbaabbaaabbbabbabbbbbbbb
|
||||||
|
bababaabaababbbaabbababaababaaab
|
||||||
|
bbaaabaaababbaaabbaabbba
|
||||||
|
aabaabbaabaaaaaabbababbb
|
||||||
|
ababbbbbbbbbbabbbabbaabbbbbaabababababbabbaabbabaaaabbbbabbbbaab
|
||||||
|
abaabbaaabbababaabbbaabb
|
||||||
|
ababaaaaabbabbbababaaaba
|
||||||
|
baabaabbabaabbaabaababaaabbbbbbbaababaaabaaabbaaabaabbbb
|
||||||
|
baaabbabaaabbbbbaababaabbabaaabaaaababaa
|
||||||
|
bbaaabbbbbbbaaabaaaaaaba
|
||||||
|
aabaaaababbaaaabbbbbbabbaabbaaba
|
||||||
|
abaabbababbaaaabbababbbaaaabbabb
|
||||||
|
bbaaababbaabbbababaaaaabbababaabaaaabbaaababbaaaaaaaababaaabbaab
|
||||||
|
aababbbabababbbaabbbabba
|
1
2020/inputs/day23.input
Normal file
1
2020/inputs/day23.input
Normal file
|
@ -0,0 +1 @@
|
||||||
|
247819356
|
|
@ -29,16 +29,15 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
auto main(i32 argc, char * argv[]) -> i32 {
|
auto current_day() -> void {
|
||||||
{
|
{
|
||||||
auto line = std::string();
|
auto line = std::string();
|
||||||
auto file = std::ifstream("dayNUM.input");
|
auto file = std::ifstream("inputs/current_day.input");
|
||||||
while (getline(file, line)) {
|
while (getline(file, line)) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
36
2020/misc/main.cpp
Normal file
36
2020/misc/main.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include "types.hpp"
|
||||||
|
|
||||||
|
extern auto current_day() -> void;
|
||||||
|
|
||||||
|
auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
|
current_day();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
66
2020/misc/main_test.cpp
Normal file
66
2020/misc/main_test.cpp
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
|
#include "types.hpp"
|
||||||
|
|
||||||
|
extern auto current_day() -> void;
|
||||||
|
|
||||||
|
auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
|
auto TEST_CYCLES = 1;
|
||||||
|
if (argc >= 2) {
|
||||||
|
TEST_CYCLES = std::stoi(argv[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << "Starting test with " << TEST_CYCLES << " iterations..." << std::endl;
|
||||||
|
auto begin1 = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
for (auto i = usize(0); i < TEST_CYCLES; ++i) {
|
||||||
|
current_day();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto end1 = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
if (argc >= 3) {
|
||||||
|
if (argv[2] == std::string("millis")) {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::milliseconds>(end1 - begin1).count() << " milliseconds"<< std::endl;
|
||||||
|
} else if (argv[2] == std::string("nanos")) {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::nanoseconds>(end1 - begin1).count() << " nanoseconds"<< std::endl;
|
||||||
|
} else if (argv[2] == std::string("micros")) {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::microseconds>(end1 - begin1).count() << " microsenconds"<< std::endl;
|
||||||
|
} else {
|
||||||
|
std::cout << "Unkown time scale '" << argv[2] << "'" << std::endl;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::microseconds>(end1 - begin1).count() << " microseconds"<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
31
2020/misc/print.hpp
Normal file
31
2020/misc/print.hpp
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef TEST_BUILD
|
||||||
|
#define print(x) std::cout << (x) << std::endl
|
||||||
|
#else
|
||||||
|
#define print(x)
|
||||||
|
#endif
|
17
2021/Makefile
Normal file
17
2021/Makefile
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
day%.out: out/types.o misc/main.cpp days/day%.cpp
|
||||||
|
g++ -O3 -std=c++2a $(flags) -Dcurrent_day=$(@:.out=) days/$(@:out=cpp) misc/main.cpp out/types.o -o $@
|
||||||
|
|
||||||
|
day%_test.out: out/types.o misc/main_test.cpp days/day%.cpp
|
||||||
|
g++ -O3 -std=c++2a $(flags) -DTEST_BUILD -Dcurrent_day=$(@:_test.out=) days/$(@:_test.out=.cpp) misc/main_test.cpp out/types.o -o $@
|
||||||
|
|
||||||
|
days/day%.cpp:
|
||||||
|
cp 'misc/day.cpp.template' $@
|
||||||
|
sed -i -e "s/current_day/$(shell basename $@ | cut -f 1 -d '.')/g" $@
|
||||||
|
|
||||||
|
out/types.o: misc/types.hpp misc/types.cpp
|
||||||
|
mkdir -p out/
|
||||||
|
g++ -std=c++2a $(flags) -c misc/types.cpp -o $@
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -f out/* day*.out day*.output
|
54
2021/days/day1.cpp
Normal file
54
2021/days/day1.cpp
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
/*****************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021 Gnarwhal
|
||||||
|
*
|
||||||
|
*****************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
auto current_day() -> void {
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day1.input");
|
||||||
|
getline(file, line);
|
||||||
|
auto value = stoi(line);
|
||||||
|
auto increases = 0;
|
||||||
|
while (getline(file, line)) {
|
||||||
|
auto new_value = stoi(line);
|
||||||
|
increases += new_value > value;
|
||||||
|
value = new_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << increases << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/day1.input");
|
||||||
|
getline(file, line);
|
||||||
|
auto index = 2;
|
||||||
|
auto values = std::vector<i32>{ 0, 0 };
|
||||||
|
while (getline(file, line)) {
|
||||||
|
auto new_value = stoi(line);
|
||||||
|
values.push_back(0);
|
||||||
|
values[index - 2] += new_value;
|
||||||
|
values[index - 1] += new_value;
|
||||||
|
values[index ] += new_value;
|
||||||
|
++index;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto increases = 0;
|
||||||
|
for (auto i = 3; i < values.size(); ++i) {
|
||||||
|
increases += values[i - 1] < values[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << increases << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
2000
2021/inputs/day1.input
Normal file
2000
2021/inputs/day1.input
Normal file
File diff suppressed because it is too large
Load diff
23
2021/misc/day.cpp.template
Normal file
23
2021/misc/day.cpp.template
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
/*****************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
*****************************/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "../misc/types.hpp"
|
||||||
|
#include "../misc/print.hpp"
|
||||||
|
|
||||||
|
auto current_day() -> void {
|
||||||
|
{
|
||||||
|
auto line = std::string();
|
||||||
|
auto file = std::ifstream("inputs/current_day.input");
|
||||||
|
while (getline(file, line)) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
2021/misc/main.cpp
Normal file
36
2021/misc/main.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include "types.hpp"
|
||||||
|
|
||||||
|
extern auto current_day() -> void;
|
||||||
|
|
||||||
|
auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
|
current_day();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
66
2021/misc/main_test.cpp
Normal file
66
2021/misc/main_test.cpp
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
|
#include "types.hpp"
|
||||||
|
|
||||||
|
extern auto current_day() -> void;
|
||||||
|
|
||||||
|
auto main(i32 argc, char * argv[]) -> i32 {
|
||||||
|
auto TEST_CYCLES = 1;
|
||||||
|
if (argc >= 2) {
|
||||||
|
TEST_CYCLES = std::stoi(argv[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << "Starting test with " << TEST_CYCLES << " iterations..." << std::endl;
|
||||||
|
auto begin1 = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
for (auto i = usize(0); i < TEST_CYCLES; ++i) {
|
||||||
|
current_day();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto end1 = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
if (argc >= 3) {
|
||||||
|
if (argv[2] == std::string("millis")) {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::milliseconds>(end1 - begin1).count() << " milliseconds"<< std::endl;
|
||||||
|
} else if (argv[2] == std::string("nanos")) {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::nanoseconds>(end1 - begin1).count() << " nanoseconds"<< std::endl;
|
||||||
|
} else if (argv[2] == std::string("micros")) {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::microseconds>(end1 - begin1).count() << " microsenconds"<< std::endl;
|
||||||
|
} else {
|
||||||
|
std::cout << "Unkown time scale '" << argv[2] << "'" << std::endl;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
std::cout << "Tests completed in " << std::chrono::duration_cast<std::chrono::microseconds>(end1 - begin1).count() << " microseconds"<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
31
2021/misc/print.hpp
Normal file
31
2021/misc/print.hpp
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef TEST_BUILD
|
||||||
|
#define print(x) std::cout << (x) << std::endl
|
||||||
|
#else
|
||||||
|
#define print(x)
|
||||||
|
#endif
|
47
2021/misc/types.cpp
Normal file
47
2021/misc/types.cpp
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include "types.hpp"
|
||||||
|
|
||||||
|
constexpr auto operator "" _u8 (unsigned long long int num) noexcept -> u8 { return u8(num); }
|
||||||
|
constexpr auto operator "" _i8 (unsigned long long int num) noexcept -> i8 { return u8(num); }
|
||||||
|
constexpr auto operator "" _u16 (unsigned long long int num) noexcept -> u16 { return u16(num); }
|
||||||
|
constexpr auto operator "" _i16 (unsigned long long int num) noexcept -> i16 { return i16(num); }
|
||||||
|
constexpr auto operator "" _u32 (unsigned long long int num) noexcept -> u32 { return u32(num); }
|
||||||
|
constexpr auto operator "" _i32 (unsigned long long int num) noexcept -> i32 { return i32(num); }
|
||||||
|
constexpr auto operator "" _u64 (unsigned long long int num) noexcept -> u64 { return u64(num); }
|
||||||
|
constexpr auto operator "" _i64 (unsigned long long int num) noexcept -> i64 { return i64(num); }
|
||||||
|
constexpr auto operator "" _usize(unsigned long long int num) noexcept -> usize { return usize(num); }
|
||||||
|
|
||||||
|
constexpr auto operator "" _c8 (char c) noexcept -> c8 { return c8(c); }
|
||||||
|
constexpr auto operator "" _c16(char c) noexcept -> c16 { return c16(c); }
|
||||||
|
constexpr auto operator "" _c32(char c) noexcept -> c32 { return c32(c); }
|
||||||
|
constexpr auto operator "" _c8 (unsigned long long int c) noexcept -> c8 { return c8(c); }
|
||||||
|
constexpr auto operator "" _c16(unsigned long long int c) noexcept -> c16 { return c16(c); }
|
||||||
|
constexpr auto operator "" _c32(unsigned long long int c) noexcept -> c32 { return c32(c); }
|
||||||
|
|
||||||
|
constexpr auto operator "" _f32(long double num) noexcept -> f32 { return (f32) num; }
|
||||||
|
constexpr auto operator "" _f64(long double num) noexcept -> f64 { return (f64) num; }
|
70
2021/misc/types.hpp
Normal file
70
2021/misc/types.hpp
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Gnarwhal
|
||||||
|
*
|
||||||
|
* -----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files(the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef GNARWHAL_REDWOOD_TYPES
|
||||||
|
#define GNARWHAL_REDWOOD_TYPES
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
using u8 = std::uint8_t;
|
||||||
|
using i8 = std::int8_t;
|
||||||
|
using u16 = std::uint16_t;
|
||||||
|
using i16 = std::int16_t;
|
||||||
|
using u32 = std::uint32_t;
|
||||||
|
using i32 = std::int32_t;
|
||||||
|
using u64 = std::uint64_t;
|
||||||
|
using i64 = std::int64_t;
|
||||||
|
using usize = std::size_t;
|
||||||
|
|
||||||
|
constexpr auto operator "" _u8 (unsigned long long int num) noexcept -> u8;
|
||||||
|
constexpr auto operator "" _i8 (unsigned long long int num) noexcept -> i8;
|
||||||
|
constexpr auto operator "" _u16 (unsigned long long int num) noexcept -> u16;
|
||||||
|
constexpr auto operator "" _i16 (unsigned long long int num) noexcept -> i16;
|
||||||
|
constexpr auto operator "" _u32 (unsigned long long int num) noexcept -> u32;
|
||||||
|
constexpr auto operator "" _i32 (unsigned long long int num) noexcept -> i32;
|
||||||
|
constexpr auto operator "" _u64 (unsigned long long int num) noexcept -> u64;
|
||||||
|
constexpr auto operator "" _i64 (unsigned long long int num) noexcept -> i64;
|
||||||
|
constexpr auto operator "" _usize(unsigned long long int num) noexcept -> usize;
|
||||||
|
|
||||||
|
using c8 = u8;
|
||||||
|
using c16 = u16;
|
||||||
|
using c32 = u32;
|
||||||
|
|
||||||
|
constexpr auto operator "" _c8 (char c) noexcept -> c8;
|
||||||
|
constexpr auto operator "" _c16(char c) noexcept -> c16;
|
||||||
|
constexpr auto operator "" _c32(char c) noexcept -> c32;
|
||||||
|
constexpr auto operator "" _c8 (unsigned long long int c) noexcept -> c8;
|
||||||
|
constexpr auto operator "" _c16(unsigned long long int c) noexcept -> c16;
|
||||||
|
constexpr auto operator "" _c32(unsigned long long int c) noexcept -> c32;
|
||||||
|
|
||||||
|
using f32 = float;
|
||||||
|
using f64 = double;
|
||||||
|
|
||||||
|
constexpr auto operator "" _f32(long double num) noexcept -> f32;
|
||||||
|
constexpr auto operator "" _f64(long double num) noexcept -> f64;
|
||||||
|
|
||||||
|
#endif // GNARWHAL_REDWOOD_TYPES
|
Loading…
Reference in a new issue