commit
462062498f
|
@ -0,0 +1,200 @@
|
|||
1593
|
||||
1575
|
||||
1583
|
||||
1609
|
||||
1835
|
||||
2008
|
||||
1638
|
||||
1396
|
||||
1833
|
||||
1524
|
||||
1778
|
||||
1574
|
||||
1653
|
||||
1962
|
||||
1831
|
||||
1557
|
||||
1847
|
||||
1587
|
||||
1876
|
||||
1914
|
||||
1565
|
||||
1585
|
||||
1713
|
||||
35
|
||||
1862
|
||||
1885
|
||||
1735
|
||||
1497
|
||||
1989
|
||||
1871
|
||||
1923
|
||||
1917
|
||||
1719
|
||||
1797
|
||||
1222
|
||||
1493
|
||||
1939
|
||||
1139
|
||||
1260
|
||||
1622
|
||||
1625
|
||||
1683
|
||||
1742
|
||||
1996
|
||||
1579
|
||||
1703
|
||||
1692
|
||||
1920
|
||||
1536
|
||||
1965
|
||||
1936
|
||||
1947
|
||||
1800
|
||||
1556
|
||||
1633
|
||||
1530
|
||||
1612
|
||||
1764
|
||||
1810
|
||||
1845
|
||||
1750
|
||||
1854
|
||||
1973
|
||||
1512
|
||||
1856
|
||||
1568
|
||||
1634
|
||||
1630
|
||||
1602
|
||||
1555
|
||||
1681
|
||||
1844
|
||||
1544
|
||||
1909
|
||||
1690
|
||||
1851
|
||||
1785
|
||||
863
|
||||
1866
|
||||
1988
|
||||
1715
|
||||
1881
|
||||
1570
|
||||
1380
|
||||
1956
|
||||
777
|
||||
1693
|
||||
1717
|
||||
1724
|
||||
1975
|
||||
790
|
||||
1484
|
||||
1822
|
||||
1922
|
||||
1963
|
||||
1741
|
||||
1809
|
||||
1896
|
||||
1837
|
||||
1980
|
||||
1244
|
||||
1832
|
||||
1834
|
||||
1643
|
||||
1775
|
||||
1818
|
||||
1503
|
||||
1802
|
||||
1957
|
||||
1174
|
||||
1826
|
||||
1649
|
||||
1941
|
||||
1571
|
||||
1930
|
||||
1629
|
||||
1502
|
||||
2002
|
||||
1700
|
||||
1880
|
||||
1723
|
||||
1803
|
||||
2007
|
||||
1543
|
||||
1872
|
||||
1993
|
||||
1740
|
||||
1919
|
||||
1688
|
||||
1067
|
||||
1680
|
||||
1580
|
||||
1558
|
||||
1772
|
||||
1694
|
||||
1480
|
||||
1257
|
||||
1796
|
||||
2001
|
||||
537
|
||||
1701
|
||||
1613
|
||||
1784
|
||||
1559
|
||||
1482
|
||||
1968
|
||||
1604
|
||||
983
|
||||
1842
|
||||
1817
|
||||
1850
|
||||
1788
|
||||
1982
|
||||
1535
|
||||
1615
|
||||
453
|
||||
1895
|
||||
1443
|
||||
1308
|
||||
1533
|
||||
1714
|
||||
1765
|
||||
1037
|
||||
1992
|
||||
1843
|
||||
1883
|
||||
1981
|
||||
1525
|
||||
1038
|
||||
1540
|
||||
1766
|
||||
1886
|
||||
1546
|
||||
1716
|
||||
810
|
||||
1899
|
||||
1708
|
||||
1508
|
||||
1870
|
||||
1051
|
||||
1867
|
||||
1840
|
||||
1617
|
||||
1726
|
||||
1566
|
||||
1616
|
||||
1948
|
||||
1771
|
||||
1627
|
||||
1994
|
||||
1486
|
||||
1913
|
||||
1600
|
||||
1983
|
||||
1501
|
||||
2003
|
||||
1667
|
||||
1620
|
||||
1943
|
||||
1674
|
|
@ -0,0 +1,51 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main() {
|
||||
FILE *f = fopen("data", "r");
|
||||
if (!f) {
|
||||
return 1;
|
||||
}
|
||||
int lines = 0;
|
||||
for (;;) {
|
||||
char *line = NULL;
|
||||
size_t n = 0;
|
||||
ssize_t e = getline(&line, &n, f);
|
||||
free(line);
|
||||
if (e > 0) {
|
||||
lines++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
printf("lines: %d\n", lines);
|
||||
int *v = calloc(sizeof *v, lines);
|
||||
|
||||
fseek(f, 0, 0);
|
||||
for (int i = 0; i < lines; i++) {
|
||||
char *line = NULL;
|
||||
size_t n = 0;
|
||||
getline(&line, &n, f);
|
||||
v[i] = atoi(line);
|
||||
free(line);
|
||||
|
||||
for (int j = 0; j < i; j++) {
|
||||
int sum2 = v[i] + v[j];
|
||||
if (sum2 == 2020) {
|
||||
printf("found match: %d and %d\n", v[i], v[j]);
|
||||
printf("product: %d\n", v[i] * v[j]);
|
||||
} else if (sum2 < 2020) {
|
||||
for (int k = 0; k < j; k++) {
|
||||
if (v[i] + v[j] + v[k] == 2020) {
|
||||
printf("found match: %d and %d and %d\n", v[i], v[j], v[k]);
|
||||
printf("product: %d\n", v[i] * v[j] * v[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
free(v);
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
count = 0
|
||||
lines = 0
|
||||
count2 = 0 # for part 2
|
||||
with open("data", "r") as f:
|
||||
for line in f:
|
||||
lines += 1
|
||||
parts = line.split(' ')
|
||||
amount = parts[0]
|
||||
char = parts[1]
|
||||
pwd = parts[2]
|
||||
|
||||
first, second = amount.split('-')
|
||||
first, second = int(first), int(second)
|
||||
|
||||
c = char[0]
|
||||
cpwd = pwd.count(c)
|
||||
if not first <= cpwd <= second:
|
||||
#print(f"bad: {first}-{second} {c}: {pwd} - has {cpwd}")
|
||||
count += 1
|
||||
|
||||
l = len(pwd)
|
||||
match = 0
|
||||
for p in [first, second]:
|
||||
if l >= p:
|
||||
if pwd[p - 1] == c:
|
||||
match += 1
|
||||
if match != 1:
|
||||
count2 += 1
|
||||
|
||||
print(f'bad count: {count}')
|
||||
print(f'good count: {lines - count}')
|
||||
print(f'total lines: {lines}')
|
||||
|
||||
print(f'2: bad count: {count2}')
|
||||
print(f'2: good count: {lines - count2}')
|
|
@ -0,0 +1,323 @@
|
|||
..#.#...#.#.#.##.....###.#....#
|
||||
...........##.#...#.#..........
|
||||
....#.....#..#.............#...
|
||||
.#....###..##...#...##...#.#..#
|
||||
#.......#.........#..#.......#.
|
||||
...#.##..##...#.#......#.##.#..
|
||||
#.#..##.....#.....#..##........
|
||||
...#.####...#.##...#...........
|
||||
.#...#..#..#....#.#.#.#.##.....
|
||||
##.#..#.##..#......#..##.#.#..#
|
||||
.#.##.....#.#...............#.#
|
||||
..##.#.....#.....##..##.#....#.
|
||||
#..#..........#...##........#..
|
||||
#..##.#.#...............#..#...
|
||||
..#....#...#.......#.......#...
|
||||
.........#.#.##.#........#.....
|
||||
#...##....#..#.........#.#...##
|
||||
...#.#...#...........#..#...#..
|
||||
...#..#........#...#...........
|
||||
.#....##.#...#.#....#....##....
|
||||
...#...#......#.#.......#...##.
|
||||
####..........##....#..........
|
||||
#..#...........................
|
||||
#....#...####..##.#......#.#...
|
||||
..#..#.....##.....#...#....#..#
|
||||
#.##......#..##........#.......
|
||||
..........#.....#...#.#.#....##
|
||||
....##...##..#........#...#..#.
|
||||
#..#..#...##..............##...
|
||||
###.##..##.###...#....##.#..#..
|
||||
.#......#.................#.#..
|
||||
#.#..#.##.#.#.#.....#.........#
|
||||
..##......#.......##........#..
|
||||
#..............#.##.#.....#....
|
||||
............................##.
|
||||
..#.##......#..........#....#..
|
||||
..##.....#..##.#....#.......##.
|
||||
..#.#.##.#.........#...........
|
||||
...........##.#.#...#......###.
|
||||
#....#...#........#.#...#.#.###
|
||||
..............#...#.....##....#
|
||||
#...#...#..............#..#...#
|
||||
.##..#.........#.##.#..#...##..
|
||||
.....#.........#..#..#.......#.
|
||||
.#......#.#.#....##..#...#..##.
|
||||
#....................#.#....#..
|
||||
......#.....##............#....
|
||||
.#.....#......####.....#....##.
|
||||
##.####.#..#..........#......#.
|
||||
##....................#..##....
|
||||
.....#...#.#.##.#.###.....#....
|
||||
.#..#...####.#.#...#.#.....#...
|
||||
#.....##.........##.##.##.....#
|
||||
....#....##.###.........#...###
|
||||
.......#........#.##.....#####.
|
||||
...#.##..#...#...####.....##...
|
||||
..#....#....#......#......#.#..
|
||||
...#.#.#.........#.......#..#..
|
||||
.....#...........#.#........##.
|
||||
..##...#.#.##.#.#.#...###.#....
|
||||
..##.............###....#.#....
|
||||
#.......#....#..#...#..##..#...
|
||||
....##..#.......####....#..#.##
|
||||
##....#...#.#.#...#...#........
|
||||
....#.#................#...#...
|
||||
...#.....#.#.......##....#.#..#
|
||||
#....##.#...#.#..#.#.........#.
|
||||
#..##.........##.....#...#.....
|
||||
....#.....#.#..#..##..##.##...#
|
||||
#.....#...#.#.#.##....#.#.##...
|
||||
.#.#........#..##.......#...#.#
|
||||
..###.....#..#.##....#...#....#
|
||||
...#..###...#...#.......#..#...
|
||||
.#....##.......#.#..........##.
|
||||
...#.#.............##.....##...
|
||||
..#..#...#.....#...#...........
|
||||
.#.#......#.##....#.....#......
|
||||
........#.#.....#.#...#..#.#..#
|
||||
#.....#.#.....#.##..#.#....#.#.
|
||||
..#..###.#.#........#.....##..#
|
||||
#.#....#......#.#....###..#...#
|
||||
...#.#....#..#.##.....#...#....
|
||||
....##....#.#...#.........#..##
|
||||
.#......#...#.............#..#.
|
||||
#........#........#.#.....##...
|
||||
..##..#.##..#........#.........
|
||||
.....#...#...#..#.....#.#.##.#.
|
||||
..#..#..#.........#...#.......#
|
||||
....#.....#.......#.##.#.##..##
|
||||
......#.......##...#......#....
|
||||
....#....##.......###.#......#.
|
||||
.....#..#.#........#....#.....#
|
||||
#...#...#....#...###........#..
|
||||
#...........####.......#.#..#.#
|
||||
..###....#..........#...#.###..
|
||||
....#.#.....#....#..#.....#.##.
|
||||
...##.#..#..#.......#......#.#.
|
||||
....#......###..#.....#.....#..
|
||||
.....#.#.#.....#.##.#....####..
|
||||
.##....#.....#.#....##..#......
|
||||
#..#.....#..#...#....#.#.......
|
||||
.##.#..####..#.##.#......#.....
|
||||
......#....#.......##.##....#..
|
||||
...#....#....#..##.......##.###
|
||||
..##..........##.............#.
|
||||
.#...#.#...##..##.....#..#.....
|
||||
....#.#.##...................#.
|
||||
.......#.#..#....#.....#.......
|
||||
.#.#..#....####...#.#.##....#..
|
||||
.#.##...#..#..#...#.#.......#..
|
||||
##.#.....##.........#.......#..
|
||||
.##...#.....#.........##.#....#
|
||||
.............#..#............##
|
||||
...##.......#.....#.......#.##.
|
||||
##..##.........................
|
||||
.##.#........#........#........
|
||||
.....#................#.#......
|
||||
.............#....#....##....#.
|
||||
#..##...##...#..#.#............
|
||||
.......#...####.#..#..#.....##.
|
||||
..#.#..#......#.....#.#.#.....#
|
||||
...#..##........#..#.#....#.#..
|
||||
.#.....#..###..#....#.##.#...#.
|
||||
#.#..#.##.#..#......#.###...#..
|
||||
##..#.#..###....##.#...#...##.#
|
||||
##..#.........#...##......#....
|
||||
#.#...#.#..#..........#.......#
|
||||
.......#.#.......#.....##..#...
|
||||
........#..##............##.#..
|
||||
........##.....#........#..#...
|
||||
#..##.#..###......##...........
|
||||
..#.....#.#.#....#...#.#..#..##
|
||||
#...............#.......#.#.##.
|
||||
#..#.....#....#............#.#.
|
||||
...#....#...#....#..#..###.....
|
||||
..#....#.#.....#..#......##.#.#
|
||||
.#.#....#..#...#....#........#.
|
||||
..##....##....#.....#.#........
|
||||
.#...#....##..##.....##.....##.
|
||||
.#...........#....##...##.#....
|
||||
...#.....#......###.##.#.......
|
||||
......#.#..##.#.#....#...#...##
|
||||
....#...###.##....#.#.....#....
|
||||
.......#.....#......#.....##..#
|
||||
.####.#...##..#....#...........
|
||||
................###...#....#..#
|
||||
...#...#.....###.#.##.......#..
|
||||
..#....#...##...#.###......#.#.
|
||||
#...#......#............#.....#
|
||||
#.........#...............#..#.
|
||||
...#.##.....#............#.....
|
||||
........#......##..#..#..#.#..#
|
||||
....#....#.....#.#.....##..#...
|
||||
.....#....#..##.....#..........
|
||||
.##....#..#...........##.......
|
||||
#......##.....#...#.....#......
|
||||
...#.....#......#.#....#.......
|
||||
...#................##...#..#..
|
||||
........#..........#....#......
|
||||
......#....#.#.#...........#.#.
|
||||
.#............#....##.......##.
|
||||
#.......#.....#...##.#..##.....
|
||||
.#.....#.##..#..#....#.#..#.#.#
|
||||
....#...............###........
|
||||
#####...........#..#.......#..#
|
||||
...#.......#...#.#............#
|
||||
#...#..#.#...#.#...#.##.....##.
|
||||
.#..#..#..#.....#....#...#.....
|
||||
.#...#......#.......#.........#
|
||||
.#....#.....#...#...#..#....#..
|
||||
#....#....#.......#.....##.....
|
||||
.#...#.#.##.#....#..##........#
|
||||
..##...#............#..........
|
||||
..........#..#..#...#....#.....
|
||||
..#.......#....#.....##..##....
|
||||
.#...#......#...#..###...#...#.
|
||||
..##...#......#...#.#.#...#....
|
||||
.....#..#.#.#.#.#...#....##..#.
|
||||
##..#..##....#.#........##.#...
|
||||
.##..#.#...##..#....#..#.......
|
||||
.....#...#...#..#.#..#......#..
|
||||
.#.....##.##..#....####..#....#
|
||||
......##.................#....#
|
||||
....##.......###...#.##...##.#.
|
||||
...#...#.................##.#..
|
||||
.#.....##...#...#.....#.....##.
|
||||
##.........####..#...#...#....#
|
||||
...##.....#......#.###..#......
|
||||
.....###..##.#.......###..##...
|
||||
#....#...#.#...#...#.#....#..#.
|
||||
#...#.........##.#.........###.
|
||||
#....#..###..........##........
|
||||
.###.....#.#.....#........##..#
|
||||
....#.........##..#..#.#.#..#..
|
||||
..#......#...........#..##...#.
|
||||
...#.#..#..#...#.##..#..#.....#
|
||||
.#...#...#....................#
|
||||
..#..##..#.............#.....#.
|
||||
.....###.#.#.#...##..#.##....#.
|
||||
..#...####..##.#....#...#...#..
|
||||
.....#..#........#.#.#..#.##...
|
||||
#.#.........####..#...#.#......
|
||||
..............#..#........#....
|
||||
....#........#......#.........#
|
||||
#..#.##......#.#.......#....#..
|
||||
....#..............#.#.#..#....
|
||||
#.#......#.....##.......#..##..
|
||||
.#.#..........#....#......#....
|
||||
.....#.......#.##.....#......##
|
||||
...#...#.##.............####...
|
||||
..#....##...#...##..#.#..##.#..
|
||||
..#.........##.......###.#.....
|
||||
..#.........#####..##...#......
|
||||
..#.#...#.......#.####......##.
|
||||
......#.#.#....#......####....#
|
||||
.###...........#...#..#..#..##.
|
||||
..#...#..##.##...#.#.##.....#..
|
||||
.....#..#....##.......#...#....
|
||||
......#.....#.........#..#..#..
|
||||
...#..#.........##.....##.#...#
|
||||
....##...#......#..#.....#.....
|
||||
....#..#....#....#........##...
|
||||
##.....#.......#.....#.#.#..#..
|
||||
.....#..##.....##.##.#.........
|
||||
.#.#..##.............#.#.......
|
||||
......#.##.#.....#.#......#..#.
|
||||
..........#.#..#....#.#.#.#..##
|
||||
...##.....#..#...#...#...##....
|
||||
........#.#......#..###..#.....
|
||||
..#.##......#.......#.......#..
|
||||
...#....##.##.........#.#......
|
||||
......#....#.#.........#......#
|
||||
.....#...#....#...#......#..#..
|
||||
.##...#......#.........#...#.#.
|
||||
..#.#.#......#....#............
|
||||
..#.....##.............#.##.##.
|
||||
#......#......#...##.......#.#.
|
||||
##........#.....#..............
|
||||
.#.###.................#.#....#
|
||||
........##.#..##........#.#....
|
||||
.......###...#...##.#..#....#..
|
||||
.#..#....#..#......##......#...
|
||||
.#...#....#..........##..##.#..
|
||||
.#..###.......#............#...
|
||||
...#.....###.#..#........#.#.#.
|
||||
...#....#..#.##..........#.#.#.
|
||||
.#..##..#.....#...........#....
|
||||
#...#...##....#..#....##.......
|
||||
#..#......#................#...
|
||||
#..##....#.#..#......#.#.#.....
|
||||
##.#..#...#.....#.#...#......##
|
||||
#....#.#.#....#.....##.....##..
|
||||
....#...##.#...####.#.#.#.#..#.
|
||||
.....#.#....#..#.....#..#......
|
||||
.........#.#...................
|
||||
........#.....####......#..#..#
|
||||
.#.#.##.#...#.#......#...##.##.
|
||||
.#......#.#.#...#..#.......#...
|
||||
..#......#.##.##.#.#....#......
|
||||
..........#.#...###............
|
||||
.##..#..#.#.#..#.....#..#.#....
|
||||
......#.......#.#..#.#....#...#
|
||||
.#.......###......#...#.#.#....
|
||||
.............##..#..#...#....#.
|
||||
....#......#.#...#.#...#...#...
|
||||
..#....#.......#.#..#..#.#..#.#
|
||||
.#..#.#...#.....#.#...#####...#
|
||||
.##............#....#..........
|
||||
#.......####...#.#.#...........
|
||||
...#.......##.#..........#....#
|
||||
..#.#......#.......##.....#..##
|
||||
#......#.###..#......#......#.#
|
||||
##....#..#....#.##....#..#.....
|
||||
...##...#.#....#.#.......#.....
|
||||
#...####....#..#.#..#.##....###
|
||||
.....#..#..........###..#......
|
||||
.#..#..#...#....#.##..#..#.....
|
||||
#..#.....#....#..#.##...##.....
|
||||
.....###.#..#.......#...###.##.
|
||||
#..#........#.#..#.#.........#.
|
||||
....##........................#
|
||||
.#....#.#.#.#.#...#......#....#
|
||||
#....#...#.##.......#.#.###....
|
||||
..........###..##....#..##.#...
|
||||
...##..###...#.#.#.......##...#
|
||||
##.#...#..#.....###....#.......
|
||||
..#..##....###........##....###
|
||||
.....##..#...#..#.....#..#....#
|
||||
#................#....#...#..##
|
||||
#....#.#....#..###.#.#...#..#.#
|
||||
........##.#...#.#.#.#...#.....
|
||||
..#..###....#......##.#...##...
|
||||
..#..##....#.##..#.....#.....#.
|
||||
.#.#...#.....#..#..#......##.#.
|
||||
........#.#...#..##....#..#....
|
||||
...##...#...#...#...##...##..#.
|
||||
.......#..#..#....#.#..#...##..
|
||||
.#.....#.##........#...#.#.....
|
||||
##.#..#....#.#....#.#....#...#.
|
||||
..#.#......#.......##...#....#.
|
||||
#.#..####..#........#.......###
|
||||
....#.......#.......##.#...#.#.
|
||||
..#..#.#.............#..#......
|
||||
........###.....##....#.......#
|
||||
...#.....#...#...#....#.###....
|
||||
#...##.#........#..#...##..#..#
|
||||
...##..#....#....#.#.#...#.#...
|
||||
#......#.....#....###......##..
|
||||
.....#.........####...##..#....
|
||||
.......#...##...#..#..#.#......
|
||||
.#.#....#.....#.......#........
|
||||
...##...#....##..#.....###.....
|
||||
.#....#........##......#....#.#
|
||||
.........#.#.#.#...........#.#.
|
||||
....#.#..##......#.#.#..##.....
|
||||
.........#.....##....#.........
|
||||
....#.............#...........#
|
||||
...#..##........#.....###......
|
||||
#....#....#......#..#..#..#.#..
|
||||
#......##.....#..#....#..#.#...
|
||||
#..............#....#.#....###.
|
||||
..##..#..#...#...##........##..
|
||||
..#.##....#..#......###..#.....
|
|
@ -0,0 +1,75 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
f, _ := os.Open("data")
|
||||
defer f.Close()
|
||||
|
||||
// arbitrary max length
|
||||
first_line := make([]byte, 255)
|
||||
max_le, _ := f.Read(first_line)
|
||||
repeat_after := 0
|
||||
for i, c := range first_line {
|
||||
if c == '\n' {
|
||||
repeat_after = i
|
||||
break
|
||||
}
|
||||
if i == max_le {
|
||||
log.Fatal("line too long!")
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Printf("line length: %d\n", repeat_after)
|
||||
// arbitrary max lines
|
||||
themap := make([][]byte, 1000)
|
||||
for i := range themap {
|
||||
themap[i] = make([]byte, repeat_after)
|
||||
}
|
||||
|
||||
f.Seek(0, 0)
|
||||
scanner := bufio.NewScanner(f)
|
||||
ln := 0
|
||||
for scanner.Scan() {
|
||||
copy(themap[ln], scanner.Bytes())
|
||||
ln += 1
|
||||
}
|
||||
|
||||
// movement: right,down
|
||||
// 1,1 - 3,1 - 5,1 - 7,1
|
||||
counts := []int{0, 0, 0, 0}
|
||||
hoff := []int{1, 3, 5, 7}
|
||||
// 1,2
|
||||
count2 := 0
|
||||
// (v,h): vertical and horizontal
|
||||
for v := 0; v < ln; v++ {
|
||||
for i := range counts {
|
||||
h:= (v * hoff[i]) % repeat_after
|
||||
if themap[v][h] == '#' {
|
||||
counts[i]++
|
||||
}
|
||||
}
|
||||
|
||||
if v % 2 == 0 {
|
||||
h := (v / 2) % repeat_after
|
||||
if themap[v][h] == '#' {
|
||||
count2++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// part 1
|
||||
fmt.Printf("total trees: %d\n", counts[1])
|
||||
// part 2
|
||||
mul := 1
|
||||
for _, v := range counts {
|
||||
mul *= v
|
||||
}
|
||||
mul *= count2
|
||||
fmt.Printf("product of total trees: %d\n", mul)
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,119 @@
|
|||
#!/bin/bash
|
||||
|
||||
isyear() {
|
||||
case $1 in
|
||||
[[:digit:]][[:digit:]][[:digit:]][[:digit:]])
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
check_pass() {
|
||||
e=
|
||||
|
||||
# ignore cid
|
||||
for f in byr iyr eyr hgt hcl ecl pid
|
||||
do
|
||||
if [[ "$1" != *"${f}:"* ]]; then
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
|
||||
f=
|
||||
|
||||
# validate each
|
||||
for v in $1
|
||||
do
|
||||
e=${v#*:}
|
||||
case "$v" in
|
||||
byr:*)
|
||||
isyear $e || return 1
|
||||
[ $e -lt 1920 -o $e -gt 2002 ] && return 1
|
||||
;;
|
||||
iyr:*)
|
||||
isyear $e || return 1
|
||||
[ $e -lt 2010 -o $e -gt 2020 ] && return 1
|
||||
;;
|
||||
eyr:*)
|
||||
isyear $e || return 1
|
||||
[ $e -lt 2020 -o $e -gt 2030 ] && return 1
|
||||
;;
|
||||
hgt:*)
|
||||
case $e in
|
||||
*cm)
|
||||
m=${e%cm}
|
||||
[ $m -lt 150 -o $m -gt 193 ] && return 1
|
||||
;;
|
||||
*in)
|
||||
m=${e%in}
|
||||
[ $m -lt 59 -o $m -gt 76 ] && return 1
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
hcl:*)
|
||||
case $e in
|
||||
\#[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]])
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
ecl:*)
|
||||
case $e in
|
||||
amb|blu|brn|gry|grn|hzl|oth)
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
pid:*)
|
||||
case $e in
|
||||
[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]])
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
total_count=0
|
||||
invalid_count=0
|
||||
|
||||
total=
|
||||
while read -r input
|
||||
do
|
||||
if [ -n "$input" ]; then
|
||||
total+=" $input"
|
||||
else
|
||||
if ! check_pass "$total"; then
|
||||
invalid_count=$(($invalid_count + 1))
|
||||
[ "$f" ] && echo missing $f $total
|
||||
[ "$e" ] && echo bad value $e - $total
|
||||
fi
|
||||
total=
|
||||
total_count=$(($total_count + 1))
|
||||
fi
|
||||
done < data
|
||||
|
||||
# count trailing data
|
||||
total_count=$(($total_count + 1))
|
||||
if ! check_pass "$total"; then
|
||||
invalid_count=$(($invalid_count + 1))
|
||||
[ "$e" ] && echo bad value $e - $total
|
||||
fi
|
||||
|
||||
echo "total: $total_count"
|
||||
echo "inval: $invalid_count"
|
||||
echo " val: $(($total_count - $invalid_count))"
|
|
@ -0,0 +1,13 @@
|
|||
ecl:gry pid:860033327 eyr:2020 hcl:#fffffd
|
||||
byr:1937 iyr:2017 cid:147 hgt:183cm
|
||||
|
||||
iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884
|
||||
hcl:#cfa07d byr:1929
|
||||
|
||||
hcl:#ae17e1 iyr:2013
|
||||
eyr:2024
|
||||
ecl:brn pid:760753108 byr:1931
|
||||
hgt:179cm
|
||||
|
||||
hcl:#cfa07d eyr:2025 pid:166559648
|
||||
iyr:2011 ecl:brn hgt:59in
|
|
@ -0,0 +1,13 @@
|
|||
eyr:1972 cid:100
|
||||
hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926
|
||||
|
||||
iyr:2019
|
||||
hcl:#602927 eyr:1967 hgt:170cm
|
||||
ecl:grn pid:012533040 byr:1946
|
||||
|
||||
hcl:dab227 iyr:2012
|
||||
ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277
|
||||
|
||||
hgt:59cm ecl:zzz
|
||||
eyr:2038 hcl:74454a iyr:2023
|
||||
pid:3556412378 byr:2007
|
|
@ -0,0 +1,12 @@
|
|||
pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980
|
||||
hcl:#623a2f
|
||||
|
||||
eyr:2029 ecl:blu cid:129 byr:1989
|
||||
iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm
|
||||
|
||||
hcl:#888785
|
||||
hgt:164cm byr:2001 iyr:2015 cid:88
|
||||
pid:545766238 ecl:hzl
|
||||
eyr:2022
|
||||
|
||||
iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719
|
|
@ -0,0 +1,816 @@
|
|||
FBFBFBFRRL
|
||||
BFBBFFFRRL
|
||||
FFBFFFFRLL
|
||||
BFFFBBBRLL
|
||||
BBFFBFBLLR
|
||||
FFFFBBBRLR
|
||||
FBBBBFFLRR
|
||||
FBFFFBFRLL
|
||||
FFFFBFFRRR
|
||||
FFFBBFFRLR
|
||||
BFBBBBFRLL
|
||||
FBBFBFFLLL
|
||||
FFFBFFBRRL
|
||||
BFBFFBBLLL
|
||||
FFBBFBBLLR
|
||||
FFBFFBBRRL
|
||||
BFBFBBBRRL
|
||||
FFBFFBBLLL
|
||||
BFFFBBBLRR
|
||||
BFBFFBFRRR
|
||||
BFFBFFBRRL
|
||||
BFBFFFFLLR
|
||||
FFFFBBBLRR
|
||||
FFBBFBFRRR
|
||||
BFFFBFBLLL
|
||||
FBFFBBBRRL
|
||||
FBBBBBBRRL
|
||||
BBFBFFBLLL
|
||||
BFFBFFFLLL
|
||||
FBFFBBFLLR
|
||||
FBFBFFBLRL
|
||||
FFBFFFBRLR
|
||||
FFBBBBFRLL
|
||||
FBFBFFFLRL
|
||||
FBBFBBFRLR
|
||||
FFBBBBBLLL
|
||||
FBFFBFBLLL
|
||||
FBFFFBBRRR
|
||||
BBFFBBFRRR
|
||||
FBFFBFBRLL
|
||||
FBBBFBBRRR
|
||||
BFFFBFFRRL
|
||||
FFBFBFBLLL
|
||||
FBFBFFFRLR
|
||||
FBBFBBBLLL
|
||||
FFFBBBBLLL
|
||||
FFFBFFBLLL
|
||||
BFBFFBBLRR
|
||||
FFBBFFFLLR
|
||||
FFBBBBBLRR
|
||||
BBFFFFBRLL
|
||||
BFFFBBFLRR
|
||||
BFBFFFBRRR
|
||||
FBBFFFBLRR
|
||||
BFBFBFFLLL
|
||||
FBBFFBFRLL
|
||||
FFBBBBFLRL
|
||||
BFFFFBFLLR
|
||||
FBFBBBFLLR
|
||||
FFFBBFBRLL
|
||||
FFBFFBBRLL
|
||||
BFBBFFBRRR
|
||||
FFFFBFBRLL
|
||||
FBFFFBFRRL
|
||||
FBBFFBBLLR
|
||||
FFBBFFBRRL
|
||||
FBBBFFBRRL
|
||||
BFFFBBFLRL
|
||||
FFBBBFBRRL
|
||||
FFFFBFBRRL
|
||||
BFBFFBFLLR
|
||||
FBBBBBFLLR
|
||||
BFFBFFFLRL
|
||||
FFFBFBFRRL
|
||||
FFFFBBBRLL
|
||||
BFFFBFFRLL
|
||||
BFFFBBBLLR
|
||||
BBFFFFFRLR
|
||||
BBFFFBFRLR
|
||||
BFBBFBBLLL
|
||||
FBFBBBFRLL
|
||||
BFFBBFFRLR
|
||||
BFFBFBBLRR
|
||||
FFBFBBFRRR
|
||||
BFBBBFFLRR
|
||||
BFFBFBBRRR
|
||||
BBFFFFFRRL
|
||||
BBFFBFBLLL
|
||||
BFBBFBFLRL
|
||||
FBBFFBFLLL
|
||||
FBBFBFFRLL
|
||||
FBBBBFFLRL
|
||||
FBBFBFFRRL
|
||||
FFFBFBFLLL
|
||||
FFBFFBFRLR
|
||||
FBBFFFBLLR
|
||||
FFFFBFBLRL
|
||||
FFFBBFBLRR
|
||||
FFBBBFFRLL
|
||||
FBFBBBFRRR
|
||||
BFBBBBFLLL
|
||||
BBFFBFFLRL
|
||||
FFFFBBBLLL
|
||||
FFBFBBBLLL
|
||||
BFBFBFFRRL
|
||||
FBFFBBFRRR
|
||||
FFFBBBBLRR
|
||||
FBBBBFBLLL
|
||||
FBBBBBBLRL
|
||||
FFBFFFBLRR
|
||||
BBFBFFBRRL
|
||||
BFBBFFBLLL
|
||||
BFFFFFFLRL
|
||||
BFFFFBFRLR
|
||||
FBFFFFFLLL
|
||||
BFFBBFFRRL
|
||||
BFBFBBFLLL
|
||||
BFBFBFBRLL
|
||||
FBFBFBBLLL
|
||||
BFFFBFFLLR
|
||||
FBBBFBBLLL
|
||||
FFBFFFBRLL
|
||||
FBBFFBBLRR
|
||||
FFBFBFBRLL
|
||||
BFFFBBBRLR
|
||||
BBFFBFBLRL
|
||||
BBFFBFBLRR
|
||||
BBFFBBFRLL
|
||||
BFFFFBBRRR
|
||||
FBFBBFFLRR
|
||||
FFBBBBBRRR
|
||||
BFBBBFFRLL
|
||||
BFBBFFFLRR
|
||||
FBFBFFBRRR
|
||||
FFBFFBFLRR
|
||||
BFBBBBBLRL
|
||||
FBFFFFBRRR
|
||||
FFBFFFFLLR
|
||||
BFFFFFBLRL
|
||||
FFBBBBFLLL
|
||||
FBFFFBBLRL
|
||||
BBFFBFFLLR
|
||||
FBBFFFBRLL
|
||||
BBFFBBBRLR
|
||||
FBFFFBFLRR
|
||||
BFFBBFBRRL
|
||||
FBBFFFFRLR
|
||||
BFFBBBFLRR
|
||||
FFBBFBBLRR
|
||||
BFBBBBFRRL
|
||||
FBFBBBBLLL
|
||||
BBFFBFBRRR
|
||||
FFFFBBFRLR
|
||||
BFBBBBFRLR
|
||||
FBBFFBFRLR
|
||||
BFBFFFBRLL
|
||||
FBFBFBBRRL
|
||||
FBFBBFBRLR
|
||||
BFBBBBBRRR
|
||||
BBFBFFBRLR
|
||||
FFBFFFBLRL
|
||||
FBBFFBFLLR
|
||||
BFFBFBFLLL
|
||||
BFFFFFBLLL
|
||||
BFBFFBBRLR
|
||||
FBBBBFBRLR
|
||||
BFBBBFBRLR
|
||||
BFBBFBBRLL
|
||||
BBFFFFBLLR
|
||||
FBFBFBFRLL
|
||||
FFFBBFBRRL
|
||||
FBFFBBFRLR
|
||||
FFFBBBBLLR
|
||||
BBFFBFFLRR
|
||||
FBBBFFFRRL
|
||||
BBFFBBFLLL
|
||||
BBFFFBFRLL
|
||||
FFBFBBFLRR
|
||||
BFBFFFBLRL
|
||||
FFBFBBFLLR
|
||||
FBBBBFFLLL
|
||||
FFBBBBFLRR
|
||||
FFFBFBBLRL
|
||||
FFFBBFFLRR
|
||||
FBBBFBBRLL
|
||||
FFBFFFFLLL
|
||||
FBBBFBFLRL
|
||||
FBFBFBFRRR
|
||||
FFBBFBFLRR
|
||||
FFBFBBFRRL
|
||||
FBFBBFFLRL
|
||||
BFFFBBBRRL
|
||||
BFBBBBFLLR
|
||||
FFFBBFFRRR
|
||||
BFBBFBBRRL
|
||||
BBFFFBBLRL
|
||||
BFBFBFFLRR
|
||||
FFFFBFFLRL
|
||||
BFBFFBFRLL
|
||||
BFBFBBFRLR
|
||||
BFFBFFFLRR
|
||||
FBFFFFFLRR
|
||||
BFFBFBFRLL
|
||||
FBBFBFFLRR
|
||||
FBFBBBBLRR
|
||||
BFFFFFFRLR
|
||||
FBBFBBBRRL
|
||||
BFFBFBFRLR
|
||||
FFFBFFFRRL
|
||||
FFBFFFFRLR
|
||||
BFFBFFBLLL
|
||||
FFBFBBFLRL
|
||||
BBFFFFFLRL
|
||||
FFFBBFFRRL
|
||||
FFBBBFFLRL
|
||||
BFBBFFBLRR
|
||||
FFBBFBFRLR
|
||||
FFBFBFFRRR
|
||||
FFFFBFFLRR
|
||||
FBBBBFBRRL
|
||||
BFBBFBBLRL
|
||||
BFFBBFFLLR
|
||||
FBFFFBFLLR
|
||||
FBFBFFBLRR
|
||||
FFBBFBBRLL
|
||||
FBFFFFFRLR
|
||||
FFBBBBFRRL
|
||||
FBBFFBFRRR
|
||||
FFFFBBFRRR
|
||||
FBBBFFBLLL
|
||||
FFBBFBBLLL
|
||||
BFBFBFFRLL
|
||||
BFFFBBFLLL
|
||||
BFFBBFFRLL
|
||||
FBFBBFFRRL
|
||||
BBFBFFFLLR
|
||||
BBFBFFBLRR
|
||||
FBFFFFFRRR
|
||||
FBFFBFFRRR
|
||||
BFFBBFBRLR
|
||||
FBFBFBFLLL
|
||||
BFFBBBBLRR
|
||||
BFBBFBBRLR
|
||||
FFBBBFFLRR
|
||||
FBFBBBBRRR
|
||||
BFBBBBBRLL
|
||||
BFBFFBBRRR
|
||||
FBFBBFBRLL
|
||||
FBFFBFBLRL
|
||||
FBBFBBBRLL
|
||||
FBFBBBBLRL
|
||||
FBFFFBBLLR
|
||||
BBFFFBFRRL
|
||||
FBFBFBBRLL
|
||||
BFBBBBBRLR
|
||||
BFBFFFFRLR
|
||||
FBFBBFBLRR
|
||||
BFBBFBFRLR
|
||||
BBFFBBBLLL
|
||||
BFFFFFFRRR
|
||||
BFBBBFBLRL
|
||||
FBFBBFFLLR
|
||||
FBFBBFFRLR
|
||||
FFFBFBBLLR
|
||||
FFBBFFFRLL
|
||||
BFBFFFFLRR
|
||||
FFFFBBBRRL
|
||||
BFFFBFFRRR
|
||||
BFFFBFBRLL
|
||||
FFFFBFFRRL
|
||||
BFFFBBFRRL
|
||||
FFFBBFFLLL
|
||||
BFBBFFBRRL
|
||||
FBFBFFFRRR
|
||||
FBFBFBFLRL
|
||||
BFBFBFBLLL
|
||||
FBBBFFBRLL
|
||||
FBFFBBBLRL
|
||||
BFBFFFFRRL
|
||||
BFFBBFBLLL
|
||||
FBFFFBBRLR
|
||||
BBFBFFFRLL
|
||||
FFBFBFFLRL
|
||||
FBBFBBBLRL
|
||||
BBFBFFFLRR
|
||||
BBFBFFBRRR
|
||||
BFFBFFBRLR
|
||||
BBFFBBFRRL
|
||||
FBFBBBFLRR
|
||||
FBBFFFFLLL
|
||||
BFFBBFBLRR
|
||||
BFBFFFFLLL
|
||||
BFFBBBBRLL
|
||||
FFBFFBFLLL
|
||||
FBBBBFBLLR
|
||||
BBFFFBFLLR
|
||||
BFBBBFBRLL
|
||||
FBFFFFBRLR
|
||||
FFBBBFFRRL
|
||||
FFBFFFBRRR
|
||||
BFFBFFFRLL
|
||||
FFFBFBBLLL
|
||||
FFFBBBFLLL
|
||||
BFBBFBFRLL
|
||||
BFBFFFBRLR
|
||||
FBBFBBFRLL
|
||||
FBBBFBFRRL
|
||||
FFBFBFFRLR
|
||||
BFBBFBBLLR
|
||||
FBBFBFBRLR
|
||||
BBFFFBBLLL
|
||||
FBFBFFFLLL
|
||||
BBFBFFFRRR
|
||||
FBFBBFBLRL
|
||||
FFBBBFBRLR
|
||||
BFBBFFBRLR
|
||||
FBFFBBBLRR
|
||||
FFBBFFBRRR
|
||||
BBFFBFBRRL
|
||||
FFBBBFFRRR
|
||||
BFBFFBFLRL
|
||||
FBFFFFBLLL
|
||||
BBFFFFBRRL
|
||||
BBFFFFBLRR
|
||||
FFBBFFBRLL
|
||||
BFBBFFFLLL
|
||||
FBBFBFBLLL
|
||||
FBBBFFFLRL
|
||||
FBFBBBBRRL
|
||||
FFFBBBFRRR
|
||||
FFBFFBBRRR
|
||||
FBFFFFFLRL
|
||||
BFFBFBFLRR
|
||||
BBFFBBBRRR
|
||||
FBFFFFFRRL
|
||||
FBBFBFBLRR
|
||||
BFFBBBBLLL
|
||||
FBBBFFFLLR
|
||||
BFFFFBFLLL
|
||||
FFBFBFBLLR
|
||||
FBFFFBBRLL
|
||||
BFFFBFBRLR
|
||||
FBBBFBFLLR
|
||||
FBBBBFFLLR
|
||||
BFFFFBBLLR
|
||||
FFBBBBBRLR
|
||||
BFFFBFBLRR
|
||||
FBBBFFBLLR
|
||||
FBFFBFBRRL
|
||||
FBFBFBBRRR
|
||||
FBBBBBBLRR
|
||||
FFBBBBBRRL
|
||||
FBFFFFBLLR
|
||||
BBFBFFBRLL
|
||||
FFFBBBFRLR
|
||||
FBFFFBBLLL
|
||||
FBFFBBBLLR
|
||||
BFBFBBFRRL
|
||||
BBFFBFBRLL
|
||||
BFFFBBFRRR
|
||||
BFFBBFBLRL
|
||||
FBBBFBFLRR
|
||||
FFFBFBFRRR
|
||||
FFBBBFBLRR
|
||||
BFBFBBFRRR
|
||||
FFBBBFBRLL
|
||||
BFFFBBBLLL
|
||||
BFFFBFBRRL
|
||||
BFFBFBBRLL
|
||||
FBBFFFFLRL
|
||||
FFFFBFFRLR
|
||||
FFFBBBBRRL
|
||||
BFFBFBFRRL
|
||||
FFFBBFBRRR
|
||||
FFBFBFBLRR
|
||||
FFFFBBFLRL
|
||||
BBFFFFBLRL
|
||||
BFBBBBBRRL
|
||||
FBBBBBFLLL
|
||||
FBFFBFFLRL
|
||||
FFBFBBBRRR
|
||||
FBFBBBBRLL
|
||||
BBFFFBBRRL
|
||||
FFBBFBFRRL
|
||||
FFBBBFFRLR
|
||||
FFFBFBFRLL
|
||||
FBBFBFBLLR
|
||||
FFBBBBBLLR
|
||||
FBFBFFBLLR
|
||||
BFFFBBFRLR
|
||||
FFBBFFFRRL
|
||||
FFFFBBFLRR
|
||||
BBFFFFFRRR
|
||||
FFBBFFBLLR
|
||||
FBFFFFBLRR
|
||||
FFFFBFFRLL
|
||||
BFBBFFFRLL
|
||||
BFBBFFBRLL
|
||||
BBFFFBBRLR
|
||||
FFBFFFFRRR
|
||||
BFBFBFBRRR
|
||||
FFBBFBFLLR
|
||||
BFFBBBFRLL
|
||||
FBBBFFFRRR
|
||||
BFBBBBBLLL
|
||||
FFBFFFFLRR
|
||||
FBFFFFBRLL
|
||||
BFFFFBFRRL
|
||||
FBBBBBBRRR
|
||||
FFFFBBFLLL
|
||||
FBFFBFFLRR
|
||||
FFFBBBFRRL
|
||||
FBBFFFBRRL
|
||||
BFBFBBBRLL
|
||||
BBFFFBFLRR
|
||||
FBBFBFBRRL
|
||||
FBBFFFFLRR
|
||||
BFBBBFBLLL
|
||||
BFFFFFBRRL
|
||||
BBFFFBBLRR
|
||||
BFFFFFBLRR
|
||||
BFBBBBFLRL
|
||||
FBFBFFBRRL
|
||||
BBFFFFFLRR
|
||||
FFFFBBBLLR
|
||||
BFBBFBFLLL
|
||||
FBBFFFBRRR
|
||||
FFBBBFBRRR
|
||||
FFBFBFFRLL
|
||||
FFBBFBBLRL
|
||||
FBBFFBFRRL
|
||||
FFFBBFBLRL
|
||||
FFBBFFBLRR
|
||||
BFFFFBBLLL
|
||||
FBBFBBFLRL
|
||||
FFFBFFBLRL
|
||||
FBBFFBBRRL
|
||||
FBFFFBFRRR
|
||||
BFBBBFFLRL
|
||||
FFFFBFFLLL
|
||||
FBFFFFFRLL
|
||||
BFBFFFFRLL
|
||||
FFBFBBBLRL
|
||||
BFFBBBBLLR
|
||||
BFFBBBFRRL
|
||||
FFBBBBFLLR
|
||||
FFFBFBFLRR
|
||||
FBFFBFFRLR
|
||||
BFBFBBBRLR
|
||||
BFFBFFFLLR
|
||||
FFFFBFBLLR
|
||||
FBFFBFBLRR
|
||||
BFFBFBFRRR
|
||||
BFFBFFBLRL
|
||||
FBBBBBFRRR
|
||||
BFBBFFBLRL
|
||||
FFBBFBBRRL
|
||||
FBFFBFFRLL
|
||||
FFBFFBFLLR
|
||||
BFBBBBBLRR
|
||||
BFFBBFFLRL
|
||||
FBBBFBBRRL
|
||||
BBFFBBBLRR
|
||||
BBFFFBFRRR
|
||||
FBFFBFBRLR
|
||||
FBFBFFBRLR
|
||||
BBFFFFBLLL
|
||||
FBBFBFFRRR
|
||||
FFBBFBFRLL
|
||||
FFFFBFBLRR
|
||||
FBFBFFFRRL
|
||||
FBBFBBFRRL
|
||||
FFBFFBFLRL
|
||||
FFBFBFBRRR
|
||||
FFFFBBFRRL
|
||||
BFFBBBFRLR
|
||||
FFBFBBBRRL
|
||||
BFFBFBBLLL
|
||||
FBBBBFFRRL
|
||||
FFFBFBFRLR
|
||||
FFBFFBBLRL
|
||||
BFFBFFBLRR
|
||||
FBBBFFFRLR
|
||||
FBBBFFBRLR
|
||||
FBBBBBBLLR
|
||||
FBBFBFFLLR
|
||||
BBFFBFFRRL
|
||||
FBBBBBFRRL
|
||||
FFFBBFFRLL
|
||||
FFFBBFFLRL
|
||||
FFBFFBBLRR
|
||||
FBBFFFBLLL
|
||||
FFFFBBFRLL
|
||||
FFBFFBBLLR
|
||||
BFFFBFFLLL
|
||||
BFFBBFBRLL
|
||||
FBBFFFBRLR
|
||||
FFFBFBBLRR
|
||||
BFBFFBBLRL
|
||||
FBFFFBFRLR
|
||||
BFBFFFFLRL
|
||||
BFBBBBBLLR
|
||||
FFFBBFFLLR
|
||||
BFBFFFBLLR
|
||||
FFFFBBFLLR
|
||||
FBBFBBFLRR
|
||||
FBBBFBBLLR
|
||||
BFFFFFBRRR
|
||||
FBFBFFFLLR
|
||||
FBFBBBBRLR
|
||||
FFFBFFBLLR
|
||||
FFFBBFBLLL
|
||||
BFFBFBBRRL
|
||||
BFBFBBBLRL
|
||||
BFFFBBFRLL
|
||||
FBBFFBFLRL
|
||||
BFBFBBBRRR
|
||||
FFFBFFBRRR
|
||||
BFFFBFFLRL
|
||||
BBFFBBFRLR
|
||||
FFFBBBBLRL
|
||||
FBBFFFFRRL
|
||||
FBFFBFFRRL
|
||||
BFFFFFBRLL
|
||||
FBFBBFBRRR
|
||||
FBFBBBFLRL
|
||||
FBFFBBBLLL
|
||||
FFFFBBBRRR
|
||||
FBBBFBBLRL
|
||||
BFBFFBBRLL
|
||||
FBFBBBFRLR
|
||||
FFFBBBFLRR
|
||||
BFFBFFFRLR
|
||||
BFBFFBFRLR
|
||||
BFBBFFFLLR
|
||||
FBFFBBBRRR
|
||||
FBBBFFBLRL
|
||||
BFBFBBBLRR
|
||||
FBBBBBFLRR
|
||||
FBBBBBBRLR
|
||||
BFBFFFFRRR
|
||||
BFBBBBFLRR
|
||||
BFBBFFFRRR
|
||||
FFBFBFFLLL
|
||||
FBFFFBFLRL
|
||||
BFBBFBFLLR
|
||||
BFFBBBFLLR
|
||||
FBBFBFBRRR
|
||||
FFBFFBFRLL
|
||||
BFFFBFFLRR
|
||||
FBFBBFFLLL
|
||||
FFFBFBBRRR
|
||||
FBBBFBBRLR
|
||||
BFFFBBBRRR
|
||||
FFFBFBFLLR
|
||||
BFFBFBBLRL
|
||||
FBFBBFFRLL
|
||||
BFBBFBBLRR
|
||||
FFFBBBBRLR
|
||||
BFFFFFFLRR
|
||||
FBFFBBFLRL
|
||||
BFBFFFBRRL
|
||||
BBFFBFFLLL
|
||||
FFBBFBBRRR
|
||||
BFBFFBFRRL
|
||||
BFFFFBBLRL
|
||||
BFBBFFFLRL
|
||||
FBFFFBFLLL
|
||||
FBBFFBBRLL
|
||||
FFBBFFBRLR
|
||||
FFFBFFBLRR
|
||||
BFBFBFFLRL
|
||||
FBBBBFBRRR
|
||||
FBBFFBFLRR
|
||||
BFFBBFBRRR
|
||||
FFFBFFBRLL
|
||||
FFBFBFFLRR
|
||||
FFFBFFFLRL
|
||||
BFBFBFBRRL
|
||||
BFFFFBFRRR
|
||||
FFBFBBBRLR
|
||||
BFFBFFBRRR
|
||||
FBBBFBFRRR
|
||||
FBBBBBFRLL
|
||||
BBFBFBFLLL
|
||||
FBFFFBBRRL
|
||||
FBBBBFBRLL
|
||||
BBFFBFBRLR
|
||||
FFFFBFBLLL
|
||||
FFBFBBBLLR
|
||||
FFFBBFBRLR
|
||||
BFBFFBBRRL
|
||||
FFBFBFBRRL
|
||||
FFBFBFBRLR
|
||||
FFFBBBFRLL
|
||||
FFBFBBFRLL
|
||||
FFFFBFBRRR
|
||||
FFFFBFBRLR
|
||||
BBFFFFFLLL
|
||||
BFBFFFBLLL
|
||||
BFBBBFFRRR
|
||||
FBBBBBBLLL
|
||||
FFBFBBBRLL
|
||||
FBFBBBFLLL
|
||||
FBBBFFBRRR
|
||||
BFBBFBFLRR
|
||||
FFFBBFBLLR
|
||||
FFFBBBBRRR
|
||||
FFBFBFBLRL
|
||||
FFBBFFFLRR
|
||||
FBBFBFBLRL
|
||||
FBBFFBBRLR
|
||||
FBBFFBBRRR
|
||||
BFBFFBFLLL
|
||||
FBFFFFBLRL
|
||||
FFBBBBBRLL
|
||||
FBFBFBBLRL
|
||||
FBFFFFBRRL
|
||||
BFBBBFBRRR
|
||||
FFFBBBFLRL
|
||||
FBFBFBFLRR
|
||||
BFFBFFBLLR
|
||||
BFBFBFBRLR
|
||||
FBBFBBFRRR
|
||||
BFBFFBBLLR
|
||||
BFBFFFBLRR
|
||||
FBBBBBFLRL
|
||||
BFFFBFBLLR
|
||||
BBFFFFBRLR
|
||||
BBFBFFFRRL
|
||||
BBFBFFBLRL
|
||||
BBFFFBFLRL
|
||||
FFBBFFFLRL
|
||||
FBBBFBFRLL
|
||||
BFFFFBFRLL
|
||||
FBBBFFFLRR
|
||||
FFBFFBFRRR
|
||||
FBBBFBFRLR
|
||||
FFBFBFFRRL
|
||||
FBFBBFBLLL
|
||||
FFBBBFBLRL
|
||||
FFBBBBFRRR
|
||||
FBFBFBBLLR
|
||||
FBBBBFBLRL
|
||||
FFBBBFFLLL
|
||||
FBFFBBFLRR
|
||||
FBFBFBBRLR
|
||||
BBFFBBFLRR
|
||||
FBFBBBFRRL
|
||||
BFFBBFFRRR
|
||||
BBFFFBBRRR
|
||||
BFFBBBBRRL
|
||||
BBFFFFFLLR
|
||||
BFBBBFFLLR
|
||||
BBFBFFFLLL
|
||||
BFFBBBFLRL
|
||||
BFBFFBFLRR
|
||||
FBBFBFBRLL
|
||||
BFFFFFBLLR
|
||||
BFBFBBFRLL
|
||||
FBBFBBBRRR
|
||||
FFBFFFBRRL
|
||||
BFBBBBFRRR
|
||||
BFFFBBFLLR
|
||||
FBBBFFFLLL
|
||||
FBFFFFFLLR
|
||||
FFBFFFFRRL
|
||||
FFBBFFFRLR
|
||||
FBFBFFFRLL
|
||||
FFBBBBBLRL
|
||||
FBFFBFBLLR
|
||||
BFBFBBFLRL
|
||||
BFFFBFFRLR
|
||||
BBFFBBFLRL
|
||||
BFFBFFBRLL
|
||||
BFFFFBBLRR
|
||||
BFBFBBBLLR
|
||||
BFFBBBBRLR
|
||||
FBBBBFFRRR
|
||||
BBFFBBBLRL
|
||||
FBBBFFFRLL
|
||||
FBBFFFFRRR
|
||||
FFBBBFFLLR
|
||||
BBFFBBFLLR
|
||||
BFFBBBBRRR
|
||||
BFBBFFBLLR
|
||||
BFBFBBBLLL
|
||||
BFFBBFBLLR
|
||||
BFBBFBFRRR
|
||||
BFFFBFBRRR
|
||||
BFBBBFFLLL
|
||||
BBFFBFFRLL
|
||||
FBBFFFBLRL
|
||||
FFFBFFFLLL
|
||||
BFBBBFBLRR
|
||||
FFBBBBFRLR
|
||||
BFFBFBFLRL
|
||||
BFBFBFBLLR
|
||||
BBFFFBBLLR
|
||||
FBFBFFFLRR
|
||||
FFBFBFFLLR
|
||||
FFBBFFBLLL
|
||||
BFBFBFFRRR
|
||||
FBFBBBBLLR
|
||||
BFBFBBFLLR
|
||||
FBBFFBBLLL
|
||||
FBFFBBBRLR
|
||||
FBFFBBBRLL
|
||||
FBFFBFFLLR
|
||||
BFFBBBFRRR
|
||||
BFFFFFFLLR
|
||||
BFBBFBFRRL
|
||||
FFBFFBBRLR
|
||||
FBBBBFFRLR
|
||||
BFFBFFFRRL
|
||||
FFBFBBFLLL
|
||||
FFFBFBBRLL
|
||||
FFFBBBBRLL
|
||||
FBBFBBBRLR
|
||||
FFFBFBBRRL
|
||||
FFBBFFFRRR
|
||||
BFFFFFFRRL
|
||||
FFBBFFBLRL
|
||||
BFFFFFBRLR
|
||||
BFFBBBFLLL
|
||||
FBFFBFFLLL
|
||||
FFBFFFFLRL
|
||||
FFFFBBBLRL
|
||||
FBFBBFFRRR
|
||||
FBFFBBFRLL
|
||||
BFFFFFFLLL
|
||||
FFBFFFBLLL
|
||||
BFBFBBFLRR
|
||||
FBBFFFFLLR
|
||||
BFBFBFFRLR
|
||||
BFBBFFFRLR
|
||||
BFBBBFFRLR
|
||||
BFFBBFFLRR
|
||||
BBFFBBBRLL
|
||||
FBBFFFFRLL
|
||||
BFFFFBBRRL
|
||||
FBFBBFBRRL
|
||||
BFFBFFFRRR
|
||||
FFBFFBFRRL
|
||||
BFFFFBBRLR
|
||||
BFFFFBFLRL
|
||||
BFBBBFFRRL
|
||||
FBBBFBFLLL
|
||||
BFFBFBBLLR
|
||||
FBFBFBBLRR
|
||||
FBBFBBBLRR
|
||||
BFBFBFFLLR
|
||||
BFFBBBBLRL
|
||||
BFFFFFFRLL
|
||||
FFFBFFFRLR
|
||||
FFBBFBFLRL
|
||||
FBFBFFBLLL
|
||||
BBFFBFFRLR
|
||||
FBBFBBFLLL
|
||||
BFBBFBBRRR
|
||||
FBBBBFFRLL
|
||||
BFBBBFBLLR
|
||||
FFBFFFBLLR
|
||||
FFFBFFFLRR
|
||||
FBFBFBFRLR
|
||||
BBFFFFBRRR
|
||||
FBBFBBBLLR
|
||||
BFBBBFBRRL
|
||||
BBFBFFBLLR
|
||||
FFBFBBBLRR
|
||||
FFBBBFBLLL
|
||||
FBBBFFBLRR
|
||||
FFFBFBFLRL
|
||||
FBFFBBFRRL
|
||||
FFFBBBFLLR
|
||||
BFFFBBBLRL
|
||||
BBFFFBBRLL
|
||||
BBFFFBFLLL
|
||||
FBBFBFFLRL
|
||||
FFFBFBBRLR
|
||||
FFBFBBFRLR
|
||||
FBBBFBBLRR
|
||||
FBFFBFBRRR
|
||||
BFFBBFFLLL
|
||||
FFBBFFFLLL
|
||||
FFFBFFBRLR
|
||||
FFBBFBFLLL
|
||||
FBBFBBFLLR
|
||||
FFFFBFFLLR
|
||||
BFFBFBBRLR
|
||||
FBFBFFBRLL
|
||||
BBFFFFFRLL
|
||||
BBFBFFFLRL
|
||||
FFFBFFFRRR
|
||||
BFFBFBFLLR
|
||||
FFBBBFBLLR
|
||||
FBFFBBFLLL
|
||||
FBFFFBBLRR
|
||||
BBFFBBBRRL
|
||||
FBFBBFBLLR
|
||||
FFFBFFFLLR
|
||||
BBFFBFFRRR
|
||||
FBBFFBBLRL
|
||||
FBBFBFFRLR
|
||||
BBFBFFFRLR
|
||||
BFBFBFBLRR
|
||||
FFBBFBBRLR
|
||||
FFFBFFFRLL
|
||||
BBFFBBBLLR
|
||||
FBBBBFBLRR
|
||||
FBFBFBFLLR
|
||||
BFFFFBFLRR
|
||||
BFFFFBBRLL
|
||||
FBBBBBBRLL
|
||||
FBBBBBFRLR
|
||||
BFFFBFBLRL
|
|
@ -0,0 +1,60 @@
|
|||
max_id_possible = 127 * 7 + 7
|
||||
--[[ table to hold seats accounted for --]]
|
||||
occupied = {}
|
||||
for i = 0,max_id_possible
|
||||
do
|
||||
occupied[i] = false
|
||||
end
|
||||
|
||||
--[[ max id in data --]]
|
||||
m = 0
|
||||
for l in io.lines("data")
|
||||
do
|
||||
row1 = 0
|
||||
row2 = 127
|
||||
for i = 1,7,1
|
||||
do
|
||||
c = l:sub(i,i)
|
||||
median = (row1 + row2) / 2
|
||||
if (c == 'F')
|
||||
then
|
||||
row2 = math.floor(median)
|
||||
else
|
||||
row1 = math.ceil(median)
|
||||
end
|
||||
end
|
||||
col1 = 0
|
||||
col2 = 7
|
||||
for i = 8,10,1
|
||||
do
|
||||
c = l:sub(i,i)
|
||||
median = (col1 + col2) / 2
|
||||
if (c == 'L')
|
||||
then
|
||||
col2 = math.floor(median)
|
||||
else
|
||||
col1 = math.ceil(median)
|
||||
end
|
||||
end
|
||||
|
||||
id = row1 * 8 + col1
|
||||
if (id > m)
|
||||
then
|
||||
m = id
|
||||
end
|
||||
|
||||
occupied[id] = true
|
||||
end
|
||||
|
||||
print("max id: ", m)
|
||||
|
||||
for i = 0,max_id_possible
|
||||
do
|
||||
if (occupied[i] == false)
|
||||
then
|
||||
if(occupied[i-1] and occupied[i+1])
|
||||
then
|
||||
print("your id: ", i)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue