1
0

Compare commits

1 Commits

Author SHA1 Message Date
hubert 5336db8643 Day15 2020-12-15 08:01:51 +01:00
154 changed files with 464 additions and 14378 deletions
-14
View File
@@ -1,14 +0,0 @@
plugins {
id("java-convention")
}
dependencies {
implementation(project(":utils"))
annotationProcessor(Libs.Micronaut.processor)
implementation(Libs.eclipseCollections)
testImplementation(Libs.Jmh.core)
testAnnotationProcessor(Libs.Jmh.processor)
}
@@ -1,47 +0,0 @@
package be.vandewalleh.aoc;
import be.vandewalleh.aoc.utils.factory.Days;
import be.vandewalleh.aoc.utils.input.Day;
import be.vandewalleh.aoc.utils.input.Lines;
@Day(1)
public class Day01 {
public static void main(String[] args) {
var day = Days.createDay(Day01.class);
System.out.println(day.part1());
System.out.println(day.part2());
}
private final int[] input;
public Day01(@Lines int[] input) {
this.input = input;
}
private int fuel(int mass) {
return (mass / 3) - 2;
}
public int part1() {
var total = 0;
for (var mass : input) {
total += fuel(mass);
}
return total;
}
public int part2() {
var total = 0;
for (var mass : input) {
int fuel = fuel(mass);
total += fuel;
while (true) {
fuel = fuel(fuel);
if (fuel <= 0) break;
total += fuel;
}
}
return total;
}
}
@@ -1,43 +0,0 @@
package be.vandewalleh.aoc;
import be.vandewalleh.aoc.intcode.IntCodeInterpreter;
import be.vandewalleh.aoc.utils.factory.Days;
import be.vandewalleh.aoc.utils.input.Csv;
import be.vandewalleh.aoc.utils.input.Day;
@Day(2)
public class Day02 {
public static void main(String[] args) {
var day = Days.createDay(Day02.class);
System.out.println(day.part1());
System.out.println(day.part2());
}
private final int[] input;
public Day02(@Csv int[] input) {
this.input = input;
}
private long runInterpreterWith(int noun, int verb) {
var interpreter = new IntCodeInterpreter(input);
interpreter.setNoun(noun);
interpreter.setVerb(verb);
interpreter.run();
return interpreter.getOutput();
}
public long part1() {
return runInterpreterWith(12, 2);
}
public int part2() {
for (var noun = 0; noun < 99; noun++) {
for (var verb = 0; verb < 99; verb++) {
if (runInterpreterWith(noun, verb) == 19690720L) return 100 * noun + verb;
}
}
return -1;
}
}
@@ -1,63 +0,0 @@
package be.vandewalleh.aoc;
import be.vandewalleh.aoc.geometry.Direction2D;
import be.vandewalleh.aoc.geometry.Point2D;
import be.vandewalleh.aoc.utils.factory.Days;
import be.vandewalleh.aoc.utils.input.Day;
import be.vandewalleh.aoc.utils.input.Lines;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@Day(3)
public class Day03 {
public static void main(String[] args) {
var day = Days.createDay(Day03.class);
System.out.println(day.part1());
System.out.println(day.part2());
}
private final String[] wireA;
private final String[] wireB;
public Day03(@Lines List<String> input) {
this.wireA = input.get(0).split(",");
this.wireB = input.get(1).split(",");
}
private List<Point2D> path(String[] wire) {
var points = new ArrayList<Point2D>();
var point = Point2D.origin;
for (var section : wire) {
var direction = Direction2D.from(section.charAt(0));
var count = Integer.parseInt(section.substring(1));
for (int i = 0; i < count; i++) {
point = point.translate(direction.point);
points.add(point);
}
}
return points;
}
private int part1() {
var pathA = path(wireA);
var pathB = path(wireB);
var intersections = new HashSet<>(pathA);
intersections.retainAll(pathB);
return intersections.stream().mapToInt(Point2D::manhattanDistance).min().orElse(-1);
}
private int part2() {
var pathA = path(wireA);
var pathB = path(wireB);
var intersections = new HashSet<>(pathA);
intersections.retainAll(pathB);
return intersections.stream().mapToInt(p -> pathA.indexOf(p) + pathB.indexOf(p) + 2).min().orElse(-1);
}
}
@@ -1,80 +0,0 @@
package be.vandewalleh.aoc;
import be.vandewalleh.aoc.utils.factory.Days;
import be.vandewalleh.aoc.utils.input.Day;
import be.vandewalleh.aoc.utils.input.Text;
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
@Day(4)
public class Day04 {
public static void main(String[] args) {
var day = Days.createDay(Day04.class);
System.out.println(day.part1());
System.out.println(day.part2());
}
private final int min;
private final int max;
public Day04(@Text String input) {
var spl = input.split("-", 2);
min = Integer.parseInt(spl[0]);
max = Integer.parseInt(spl[1]);
}
private boolean isNotDecreasing(int[] ints) {
for (int i = 0; i < 5; i++) {
int a = ints[i], b = ints[i + 1];
if (b < a) return false;
}
return true;
}
private boolean hasPair(int[] ints) {
for (int i = 0; i < 5; i++) {
int a = ints[i], b = ints[i + 1];
if (a == b) return true;
}
return false;
}
private boolean hasGroup(int[] ints) {
var occurrences = new int[10];
for (int i = 0; i < 5; i++) {
int a = ints[i], b = ints[i + 1];
if (a == b) occurrences[a]++;
}
return Arrays.stream(occurrences).anyMatch(e -> e == 1);
}
private Stream<int[]> intStream() {
return IntStream.rangeClosed(min, max)
.mapToObj(String::valueOf)
.map(String::toCharArray)
.map(e -> {
var ints = new int[6];
for (int i = 0; i < 6; i++) {
ints[i] = Integer.parseInt(String.valueOf(e[i]));
}
return ints;
});
}
private long part1() {
return intStream()
.filter(this::isNotDecreasing)
.filter(this::hasPair)
.count();
}
private long part2() {
return intStream()
.filter(this::isNotDecreasing)
.filter(this::hasGroup)
.count();
}
}
@@ -1,36 +0,0 @@
package be.vandewalleh.aoc;
import be.vandewalleh.aoc.intcode.IntCodeInterpreter;
import be.vandewalleh.aoc.utils.factory.Days;
import be.vandewalleh.aoc.utils.input.Csv;
import be.vandewalleh.aoc.utils.input.Day;
@Day(5)
public class Day05 {
public static void main(String[] args) {
var day = Days.createDay(Day05.class);
System.out.println(day.part1());
System.out.println(day.part2());
}
private final int[] input;
public Day05(@Csv int[] input) {
this.input = input;
}
private Long part1() {
var interpreter = new IntCodeInterpreter(input);
interpreter.setInput(1);
interpreter.run();
return interpreter.getOutputs().peek();
}
private Long part2() {
var interpreter = new IntCodeInterpreter(input);
interpreter.setInput(5);
interpreter.run();
return interpreter.getOutputs().peek();
}
}
@@ -1,80 +0,0 @@
package be.vandewalleh.aoc;
import be.vandewalleh.aoc.utils.factory.Days;
import be.vandewalleh.aoc.utils.input.Day;
import be.vandewalleh.aoc.utils.input.Lines;
import java.util.*;
@Day(6)
public class Day06 {
public static void main(String[] args) {
var day = Days.createDay(Day06.class);
System.out.println(day.part1());
System.out.println(day.part2());
}
private final List<String> input;
public Day06(@Lines List<String> input) {
this.input = input;
}
private final Map<String, String> reverseOrbits = new HashMap<>();
private int countDirectOrbits() {
return reverseOrbits.size();
}
private int countIndirectOrbits() {
var count = 0;
for (var key : reverseOrbits.keySet()) {
count += countIndirectOrbits(key);
}
return count;
}
private int countIndirectOrbits(String key) {
var count = 0;
var currentKey = reverseOrbits.get(key);
while (currentKey != null) {
currentKey = reverseOrbits.get(currentKey);
if (currentKey != null) count++;
else return count;
}
return -1;
}
private List<String> pathToCom(String key) {
var path = new ArrayList<String>();
var currentKey = reverseOrbits.get(key);
path.add(currentKey);
while (currentKey != null) {
currentKey = reverseOrbits.get(currentKey);
if (currentKey == null) return path;
else path.add(currentKey);
}
return path;
}
private int part1() {
for (var line : input) {
var split = line.split("\\)");
reverseOrbits.put(split[1], split[0]);
}
return countDirectOrbits() + countIndirectOrbits();
}
private int part2() {
var sanPath = pathToCom("SAN");
var youPath = pathToCom("YOU");
var common = new LinkedHashSet<>(sanPath);
common.retainAll(youPath);
String closestCommon = (String) common.toArray()[0];
return sanPath.indexOf(closestCommon) + youPath.indexOf(closestCommon);
}
}
@@ -1,29 +0,0 @@
package be.vandewalleh.aoc.geometry;
public enum Direction2D {
Up(0, -1), Down(0, 1), Right(1, 0), Left(-1, 0);
public final Point2D point;
Direction2D(int x, int y) {
this.point = new Point2D(x, y);
}
public static Direction2D from(char direction) {
switch (direction) {
case 'U' -> {
return Direction2D.Up;
}
case 'D' -> {
return Direction2D.Down;
}
case 'R' -> {
return Direction2D.Right;
}
case 'L' -> {
return Direction2D.Left;
}
default -> throw new IllegalArgumentException("Unexpected value: " + direction);
}
}
}
@@ -1,13 +0,0 @@
package be.vandewalleh.aoc.geometry;
public record Point2D(int x, int y) {
public static Point2D origin = new Point2D(0, 0);
public int manhattanDistance() {
return Math.abs(x) + Math.abs(y);
}
public Point2D translate(Point2D other) {
return new Point2D(this.x + other.x, this.y + other.y);
}
}
@@ -1,115 +0,0 @@
package be.vandewalleh.aoc.intcode;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;
public class IntCodeInterpreter {
private final Deque<Long> outputs = new ArrayDeque<>();
private final long[] memory;
private long input;
public IntCodeInterpreter(int[] memory) {
this.memory = Arrays.stream(memory).asLongStream().toArray();
}
public void setNoun(long noun) {
memory[1] = noun;
}
public void setVerb(long verb) {
memory[2] = verb;
}
public void setInput(long input) {
this.input = input;
}
public long getOutput() {
return memory[0];
}
// private ?
public Deque<Long> getOutputs() {
return outputs;
}
private long readArgument(Mode mode, long param) {
switch (mode) {
case Positional -> {
return memory[(int) param];
}
case Immediate -> {
return param;
}
default -> throw new IllegalArgumentException();
}
}
private void writeArgument(long param, long value) {
memory[(int) param] = value;
}
private Mode[] modes(long instruction) {
var str = String.format("%5d", instruction).replace(' ', '0');
return new Mode[]{
Mode.of(str.charAt(2)),
Mode.of(str.charAt(1)),
Mode.of(str.charAt(0))
};
}
public void run() {
var pointer = 0;
loop:
while (true) {
var jumped = false;
var instruction = memory[pointer];
var opCode = OpCode.from(((int) instruction) % 100);
var args = Arrays.copyOfRange(memory, pointer + 1, pointer + opCode.params + 1);
var modes = modes(instruction);
switch (opCode) {
case Add -> {
var value = readArgument(modes[0], args[0]) + readArgument(modes[1], args[1]);
writeArgument(args[2], value);
}
case Multiply -> {
var value = readArgument(modes[0], args[0]) * readArgument(modes[1], args[1]);
writeArgument(args[2], value);
}
case In -> {
writeArgument(args[0], input);
}
case Out -> {
outputs.push(readArgument(modes[0], args[0]));
}
case JumpIfTrue -> {
if (readArgument(modes[0], args[0]) != 0) {
pointer = (int) readArgument(modes[1], args[1]);
jumped = true;
}
}
case JumpIfFalse -> {
if (readArgument(modes[0], args[0]) == 0) {
pointer = (int) readArgument(modes[1], args[1]);
jumped = true;
}
}
case LessThan -> {
var value = readArgument(modes[0], args[0]) < readArgument(modes[1], args[1]) ? 1 : 0;
writeArgument(args[2], value);
}
case Equals -> {
var value = readArgument(modes[0], args[0]) == readArgument(modes[1], args[1]) ? 1 : 0;
writeArgument(args[2], value);
}
case Halt -> {
break loop;
}
}
if (!jumped) pointer += opCode.params + 1;
}
}
}
@@ -1,11 +0,0 @@
package be.vandewalleh.aoc.intcode;
public enum Mode {
Positional, Immediate;
public static Mode of(char representation) {
if (representation == '0') return Mode.Positional;
else if (representation == '1') return Mode.Immediate;
else throw new IllegalArgumentException("Unsupported Mode " + representation);
}
}
@@ -1,29 +0,0 @@
package be.vandewalleh.aoc.intcode;
public enum OpCode {
Add(1, 3),
Multiply(2, 3),
Halt(99, 0),
In(3, 1),
Out(4, 1),
JumpIfTrue(5, 2),
JumpIfFalse(6, 2),
LessThan(7, 3),
Equals(8, 3),
;
public final int value;
public final int params;
OpCode(int value, int params) {
this.value = value;
this.params = params;
}
public static OpCode from(int value) {
for (OpCode opCode : OpCode.values()) {
if (opCode.value == value) return opCode;
}
throw new IllegalArgumentException("Unsupported OpCode " + value);
}
}
-100
View File
@@ -1,100 +0,0 @@
132791
78272
114679
60602
59038
69747
61672
147972
92618
70186
125826
61803
78112
124864
58441
113062
105389
125983
90716
75544
148451
73739
127762
146660
128747
148129
138635
80095
60241
145455
98730
59139
146828
113550
91682
107415
129207
147635
104583
102245
73446
148657
96364
52033
69964
63609
98207
73401
65511
115034
126179
96664
85394
128472
79017
93222
55267
102446
133150
148985
95325
57713
77370
60879
111977
99362
91581
55201
137670
127159
128324
77217
86378
112847
108265
80355
75650
106222
67793
113891
74508
139463
69972
122753
135854
127770
101085
98304
61451
146719
61225
60468
83613
137436
126303
78759
70081
110671
113234
111563
-1
View File
@@ -1 +0,0 @@
1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,6,1,19,1,5,19,23,2,6,23,27,1,27,5,31,2,9,31,35,1,5,35,39,2,6,39,43,2,6,43,47,1,5,47,51,2,9,51,55,1,5,55,59,1,10,59,63,1,63,6,67,1,9,67,71,1,71,6,75,1,75,13,79,2,79,13,83,2,9,83,87,1,87,5,91,1,9,91,95,2,10,95,99,1,5,99,103,1,103,9,107,1,13,107,111,2,111,10,115,1,115,5,119,2,13,119,123,1,9,123,127,1,5,127,131,2,131,6,135,1,135,5,139,1,139,6,143,1,143,6,147,1,2,147,151,1,151,5,0,99,2,14,0,0
-2
View File
@@ -1,2 +0,0 @@
R1000,U371,R195,U136,R804,U805,L450,U211,R768,U768,L548,U354,L736,U431,L152,U658,L670,D262,L277,U136,L290,U939,R501,U550,L931,D839,R335,D492,L25,U80,R878,U355,R653,U186,R423,D485,L793,D259,L739,U679,R508,D269,R432,D761,R97,D461,L675,U958,L58,U348,L719,D271,R144,U849,R384,U72,L84,U493,R947,U30,L356,D442,R327,U646,R825,U718,L329,D173,L949,D345,L971,D830,L93,U506,R245,D376,R322,D105,L604,D60,R298,D959,L165,D423,R180,D527,R956,D944,R785,U641,L794,D182,R975,D719,L166,U974,L224,U243,L666,U706,R796,D600,L856,D913,L988,D993,L259,U351,R487,D424,L335,U910,L437,D180,R621,D3,R878,D188,R254,D393,L727,U829,R352,U958,L327,D158,L854,D17,R143,D454,R889,D265,L345,U784,R35,D129,R77,U117,R951,D980,L866,U646,R242,D603,L562,U727,L496,U328,L380,D504,R644,U803,L530,D546,R328,D373,L489,U454,R74,D908,R366,U94,R604,D482,L573,D27,R943,U497,L782,D267,L391,U49,R528,D58,R155,D529,R227,D998,R558,D891,R224,U843,R512,U34,R92,U404,R752,U946,L338,D880,L513,D28,L856,D444,L187,U532,L187,U669,L306,U259,R287,D442,R478,U576,R702,U336,L305,U701,L754,D277,R760,D863,L717,U196,L221,U101,L334,D156,L961,D810,L67,D716,L457,D44,L505,D724,R716,D660,L36,D338,R54,U424,R730,U18,L65,D133,R149,U374,R356,D989,R519,U593,L444,D270,R328,U167,L748,D797,L434,U751,R444,D71,R158,D530,L630,U147,R909,D994,L957,U521,L644,D579,R673,U191,R935,U237,R600,D321,L671,U961,L884,U378,R534,D46,R275,U845,R571,U245,L507,U273,R995,U408,L14,D799,L955,D534,R579,D94,R705,D391,R469,D381,R620,U162,R907,D826,R824,U167,L734,U922,L484
L1007,D620,R853,U77,L13,U473,L253,D410,R897,U464,L862,U281,L650,D470,R87,D204,L896,U670,L864,D950,L75,D320,R901,D785,L653,D225,L857,U616,L143,U940,L664,U131,L547,D745,R636,U569,L50,U454,R288,D254,L36,U377,L609,U929,L714,U85,L939,U923,L566,D280,R243,U948,R447,D7,R908,D151,R824,D432,R34,D81,L458,U745,L420,D982,L625,U910,L729,D274,R910,U322,L984,D88,L700,D349,L932,U510,R625,U88,L252,U785,L378,D101,R299,U66,L476,U696,R236,D46,R590,U157,R461,U305,L269,D487,L676,U467,R319,D524,R75,U65,L478,U861,L238,D716,R888,D12,L184,D578,R266,D226,L656,D172,L752,U124,L831,U810,L663,U538,R417,D770,L359,U1,R12,U791,L332,U272,R574,D942,L857,U447,R310,U342,L713,D258,R590,D585,R129,D115,R832,D967,R981,D159,R864,U423,R268,U519,L52,D493,R445,D657,R885,U166,R155,D264,R51,D632,R525,D875,R617,U898,L556,D386,L143,U278,L767,D389,R821,U869,R286,D90,R289,U54,R15,D764,R46,D674,R983,U49,R959,U779,R958,D247,R483,U156,L18,U12,L178,U540,L499,U487,L544,D336,R814,U267,R145,D135,L920,D902,L933,D507,L997,U361,L577,U425,L773,D782,R117,U851,R998,U503,R902,U781,L161,U98,L653,U633,L91,U629,L138,D19,R147,D756,R364,D529,L764,U913,L118,U856,R774,D621,R151,U154,R737,D960,R86,U458,R991,D481,R560,D858,R223,D6,R931,D301,R552,D797,R284,U368,L967,D686,R940,U410,R137,D156,L6,U643,L445,D999,R888,D277,L852,U210,L777,D36,R103,D652,R120,D67,L642,D527,R913,D858,R69,D433,R864,U75,L531,U456,L664,D452,R801,U851,L824,D278,L526,U133,R200,U768,R15,U393,R982,U287,L38,D114,R86,U299,L819,D891,R379,D601,L244
-1
View File
@@ -1 +0,0 @@
272091-815432
-1
View File
@@ -1 +0,0 @@
3,225,1,225,6,6,1100,1,238,225,104,0,1101,11,91,225,1002,121,77,224,101,-6314,224,224,4,224,1002,223,8,223,1001,224,3,224,1,223,224,223,1102,74,62,225,1102,82,7,224,1001,224,-574,224,4,224,102,8,223,223,1001,224,3,224,1,224,223,223,1101,28,67,225,1102,42,15,225,2,196,96,224,101,-4446,224,224,4,224,102,8,223,223,101,6,224,224,1,223,224,223,1101,86,57,225,1,148,69,224,1001,224,-77,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1101,82,83,225,101,87,14,224,1001,224,-178,224,4,224,1002,223,8,223,101,7,224,224,1,223,224,223,1101,38,35,225,102,31,65,224,1001,224,-868,224,4,224,1002,223,8,223,1001,224,5,224,1,223,224,223,1101,57,27,224,1001,224,-84,224,4,224,102,8,223,223,1001,224,7,224,1,223,224,223,1101,61,78,225,1001,40,27,224,101,-89,224,224,4,224,1002,223,8,223,1001,224,1,224,1,224,223,223,4,223,99,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,1105,0,99999,1105,227,247,1105,1,99999,1005,227,99999,1005,0,256,1105,1,99999,1106,227,99999,1106,0,265,1105,1,99999,1006,0,99999,1006,227,274,1105,1,99999,1105,1,280,1105,1,99999,1,225,225,225,1101,294,0,0,105,1,0,1105,1,99999,1106,0,300,1105,1,99999,1,225,225,225,1101,314,0,0,106,0,0,1105,1,99999,1008,677,226,224,1002,223,2,223,1006,224,329,101,1,223,223,8,226,677,224,102,2,223,223,1005,224,344,101,1,223,223,1107,226,677,224,102,2,223,223,1006,224,359,101,1,223,223,1007,226,226,224,102,2,223,223,1006,224,374,101,1,223,223,7,677,677,224,102,2,223,223,1005,224,389,1001,223,1,223,108,677,677,224,1002,223,2,223,1005,224,404,101,1,223,223,1008,226,226,224,102,2,223,223,1005,224,419,1001,223,1,223,1107,677,226,224,102,2,223,223,1005,224,434,1001,223,1,223,1108,677,677,224,102,2,223,223,1006,224,449,1001,223,1,223,7,226,677,224,102,2,223,223,1005,224,464,101,1,223,223,1008,677,677,224,102,2,223,223,1005,224,479,101,1,223,223,1007,226,677,224,1002,223,2,223,1006,224,494,101,1,223,223,8,677,226,224,1002,223,2,223,1005,224,509,101,1,223,223,1007,677,677,224,1002,223,2,223,1006,224,524,101,1,223,223,107,226,226,224,102,2,223,223,1006,224,539,101,1,223,223,107,226,677,224,102,2,223,223,1005,224,554,1001,223,1,223,7,677,226,224,102,2,223,223,1006,224,569,1001,223,1,223,107,677,677,224,1002,223,2,223,1005,224,584,101,1,223,223,1107,677,677,224,102,2,223,223,1005,224,599,101,1,223,223,1108,226,677,224,102,2,223,223,1006,224,614,101,1,223,223,8,226,226,224,102,2,223,223,1006,224,629,101,1,223,223,108,226,677,224,102,2,223,223,1005,224,644,1001,223,1,223,108,226,226,224,102,2,223,223,1005,224,659,101,1,223,223,1108,677,226,224,102,2,223,223,1006,224,674,1001,223,1,223,4,223,99,226
File diff suppressed because it is too large Load Diff
-18
View File
@@ -1,18 +0,0 @@
plugins {
id("kotlin-convention")
kotlin("kapt")
}
dependencies {
implementation(project(":utils"))
kapt(Libs.Micronaut.processor)
implementation(Libs.Slf4J.api)
runtimeOnly(Libs.Slf4J.simple)
implementation(Libs.eclipseCollections)
testImplementation(Libs.Jmh.core)
kaptTest(Libs.Jmh.processor)
}
-148
View File
@@ -1,148 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Groups
import org.eclipse.collections.api.multimap.list.ListMultimap
import org.eclipse.collections.api.multimap.list.MutableListMultimap
import org.eclipse.collections.api.multimap.set.MutableSetMultimap
import org.eclipse.collections.impl.factory.Multimaps
import org.eclipse.collections.impl.multimap.list.FastListMultimap
@Day(16)
class Day16(@Groups val input: List<List<String>>) {
private val rangesGroup = input[0]
private val myTicket = input[1][1]
private val nearbyTicketsGroup = input[2].drop(1)
private val rangeRe = "(\\d+)-(\\d+)".toRegex()
private fun extractRanges(line: String): Sequence<IntRange> = rangeRe.findAll(line)
.map {
val (min, max) = it.destructured
min.toInt()..max.toInt()
}
fun part1(): Int {
val minMax = mutableListOf<IntRange>()
for (line in rangesGroup) {
minMax.addAll(extractRanges(line))
}
val nearbyTickets = mutableListOf<Int>()
for (line in nearbyTicketsGroup) {
line.splitToSequence(",").forEach { nearbyTickets.add(it.toInt()) }
}
val invalid = mutableListOf<Int>()
nearbyTickets.forEach { number ->
if (minMax.none { number in it }) invalid.add(number)
}
return invalid.sum()
}
private fun isTicketValid(ticket: List<Int>, ranges: Iterable<IntRange>): Boolean {
for (number in ticket) {
if (!ranges.any { number in it }) return false
}
return true
}
private fun inRanges(value: Int, ranges: List<IntRange>) = ranges.any { value in it }
fun part2(): Long {
val rangesByName = namedRanges()
val validTickets = validTickets(rangesByName)
val indexesByCategory = indexesByCategory(rangesByName, validTickets)
removeDuplicates(indexesByCategory)
val myTicketValues = myTicket.split(",").map { it.toInt() }
var mult = 1L
indexesByCategory.forEachKeyValue { category, index ->
if (category.startsWith("departure")) {
mult *= myTicketValues[index]
}
}
return mult
}
private fun removeDuplicates(indexesByCategory: MutableSetMultimap<String, Int>) {
val toBeRemoved = HashSet<Int>()
val queue = ArrayDeque<Int>()
indexesByCategory.multiValuesView()
.toSortedListBy { it.size() }
.forEach { it.forEach { if (toBeRemoved.add(it)) queue.add(it) } }
queue.removeLast()
val categoriesToRemove = mutableListOf<String>()
while (queue.isNotEmpty()) {
val duplicate = queue.removeFirst()
categoriesToRemove.clear()
for (entry in indexesByCategory.keyMultiValuePairsView()) {
if (entry.two.size() < 2) continue
categoriesToRemove.add(entry.one)
}
for (category in categoriesToRemove) {
indexesByCategory.remove(category, duplicate)
}
}
}
private fun indexesByCategory(
rangesByName: ListMultimap<String, IntRange>,
validTickets: List<List<Int>>,
): MutableSetMultimap<String, Int> {
val indexesByCategory = Multimaps.mutable.set.empty<String, Int>()
for (entry in rangesByName.keyMultiValuePairsView()) {
val category = entry.one
val ranges = entry.two.toList()
for (i in validTickets.first().indices) {
var allInRange = true
for(ticket in validTickets){
val current = ticket[i]
if(!inRanges(current, ranges)){
allInRange = false
break
}
}
if (allInRange) indexesByCategory.put(category, i)
}
}
return indexesByCategory
}
private fun validTickets(rangesByName: MutableListMultimap<String, IntRange>): List<List<Int>> {
val validTickets = mutableListOf<List<Int>>()
val ranges = rangesByName.valuesView().toList()
for (line in nearbyTicketsGroup) {
val ticket = line.split(",").map { it.toInt() }
if (isTicketValid(ticket, ranges)) {
validTickets.add(ticket)
}
}
return validTickets
}
private fun namedRanges(): MutableListMultimap<String, IntRange> {
val rangesByName = FastListMultimap<String, IntRange>()
for (line in rangesGroup) {
val name = line.substringBefore(":")
extractRanges(line).forEach {
rangesByName.put(name, it)
}
}
return rangesByName
}
}
-87
View File
@@ -1,87 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Lines
private data class Point(val x: Int, val y: Int, val z: Int)
private data class Point4(val x: Int, val y: Int, val z: Int, val blah: Int)
private enum class State { Active, Inactive }
@Day(17)
class Day17(@Lines val input: List<String>) {
fun part1(): Int {
val grid = parseGrid { x, y -> Point(x, y, 0) }
repeat(6) { step(grid, ::neighbours3) }
return grid.values.count { it == State.Active }
}
fun part2(): Int {
val grid = parseGrid { x, y -> Point4(x, y, 0, 0) }
repeat(6) { step(grid, ::neighbours4) }
return grid.values.count { it == State.Active }
}
private fun <T> parseGrid(pointFactory: (x: Int, y: Int) -> T): MutableMap<T, State> {
val grid = mutableMapOf<T, State>()
input.forEachIndexed { index, row ->
row.forEachIndexed { col, char ->
val state = if (char == '#') State.Active else State.Inactive
grid[pointFactory(index, col)] = state
}
}
return grid
}
private fun <T> step(grid: MutableMap<T, State>, neighbours: (T) -> List<T>) {
val modifications = mutableMapOf<T, State>()
val pointsToConsider = grid.keys.flatMap { neighbours(it) }.toSet()
for (point in pointsToConsider) {
val neighbours = neighbours(point)
val activeNeighboursCount = neighbours.count { grid[it] ?: State.Inactive == State.Active }
val state = grid[point] ?: State.Inactive
if (state == State.Active && activeNeighboursCount !in 2..3) {
modifications[point] = State.Inactive
} else if (activeNeighboursCount == 3) {
modifications[point] = State.Active
}
}
for ((point, state) in modifications) {
grid[point] = state
}
}
private fun neighbours3(point: Point): List<Point> {
val points = mutableListOf<Point>()
for (x in point.x - 1..point.x + 1) {
for (y in point.y - 1..point.y + 1) {
for (z in point.z - 1..point.z + 1) {
val generatedPoint = Point(x, y, z)
if (generatedPoint != point)
points.add(generatedPoint)
}
}
}
check(points.size == 26) { "Points size was ${points.size}" }
return points
}
private fun neighbours4(point: Point4): List<Point4> {
val points = mutableListOf<Point4>()
for (x in point.x - 1..point.x + 1) {
for (y in point.y - 1..point.y + 1) {
for (z in point.z - 1..point.z + 1) {
for (blah in point.blah - 1..point.blah + 1) {
val generatedPoint = Point4(x, y, z, blah)
if (generatedPoint != point)
points.add(generatedPoint)
}
}
}
}
check(points.size == 80) { "Points size was ${points.size}" }
return points
}
}
-170
View File
@@ -1,170 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Lines
import java.util.*
import org.slf4j.Logger
import org.slf4j.LoggerFactory
private enum class Operator { Add, Multiply }
private operator fun Operator.invoke(a: Long, b: Long) = when (this) {
Operator.Add -> a + b
Operator.Multiply -> a * b
}
private inline fun Logger.debug(msg: () -> Any) {
if (isDebugEnabled) debug(msg().toString())
}
@Day(18)
class Day18(@Lines val input: List<String>) {
private val logger = LoggerFactory.getLogger("Day18")
private val lines = input.map { it.replace(" ", "") }
private fun parseGroups(line: String): Map<Int, List<IntRange>> {
var depth = 0
val groups = mutableMapOf<Int, MutableList<IntRange>>()
val openingPars = Stack<Int>()
for ((index, char) in line.withIndex()) {
when (char) {
'(' -> {
openingPars.push(index)
depth++
}
')' -> {
depth--
val group = groups.getOrPut(depth) { mutableListOf() }
group.add(openingPars.pop()..index)
}
}
}
return groups.also { logger.debug { it } }
}
private fun solveGroup(group: String, precedence: Boolean) = solveGroup(parseGroup(group), precedence)
private fun solveGroup(group: Pair<LinkedList<Long>, LinkedList<Operator>>, precedence: Boolean): Long {
val (operands, operators) = group
logger.debug { operands }
logger.debug { operators }
if (!precedence) {
for (i in operators.indices) {
val a = operands[i]
val b = operands[i + 1]
val result = operators[i](a, b)
operands[i + 1] = result
}
return operands.peekLast()
} else {
var i = 0
while (operators.any { it == Operator.Add }) {
val operator = operators[i]
if (operator == Operator.Add) {
val a = operands[i]
val b = operands[i + 1]
val res = operator(a, b)
operands.removeAt(i)
operands[i] = res
operators.removeAt(i)
} else {
i++
}
}
return operands.reduce { a, b -> Operator.Multiply(a, b) }
}
}
private fun parseGroup(group: String): Pair<LinkedList<Long>, LinkedList<Operator>> {
val operands = LinkedList<Long>()
val operators = LinkedList<Operator>()
val operand = StringBuilder()
for (char in group) {
if (char.isDigit()) {
operand.append(char)
} else {
val operator = when (char) {
'+' -> Operator.Add
'*' -> Operator.Multiply
else -> error("Unknown operator $char")
}
operators.add(operator)
operands.add(operand.toString().toLong())
operand.clear()
}
}
operands.add(operand.toString().toLong())
return Pair(operands, operators)
}
private fun solveLine(line: String, precedence: Boolean = false): Long {
var l = line
while (true) {
val groups = parseGroups(l)
if (groups.isEmpty()) break
val highestDepth = groups.keys.maxOrNull()!!
val solvableRanges = groups[highestDepth]!!
val solved = ArrayDeque<Pair<IntRange, Long>>()
for (range in solvableRanges) {
val rangeWithoutPars = range.first + 1 until range.last
val answer = solveGroup(l.substring(rangeWithoutPars), precedence)
solved.addLast(range to answer)
}
var solution = solved.removeFirst()
var inside = false
val builder = StringBuilder()
for (i in l.indices) {
if (!inside && i in solution.first) {
inside = true
builder.append(solution.second)
} else if (inside && i !in solution.first) {
inside = false
solution = if (solved.isEmpty()) -1..-1 to -1 // avoid null checks..
else solved.removeFirst()
builder.append(l[i])
} else if (i !in solution.first) {
builder.append(l[i])
}
}
l = builder.toString()
}
return solveGroup(l, precedence)
}
fun part1() = lines
.parallelStream()
.map { solveLine(it) }
.reduce { t, u -> t + u }
.get()
fun part2() = lines
.parallelStream()
.map { solveLine(it, precedence = true) }
.reduce { t, u -> t + u }
.get()
}
-55
View File
@@ -1,55 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Groups
import java.util.*
@Day(19)
class Day19(@Groups val input: List<List<String>>) {
private val rules = input[0]
private val messages = input[1]
sealed class Rule {
data class CharRule(val value: Char) : Rule()
data class OrRule(val a: List<Int>, val b: List<Int>?) : Rule() {
val all get() = listOfNotNull(a, b)
}
}
private fun parseRules(): Map<Int, Rule> {
val parsedRules = mutableMapOf<Int, Rule>()
rules.forEach {
val parts = it.split(":", limit = 2)
val index = parts[0].toInt()
val rule = if ("\"" !in parts[1]) {
val p = parts[1].split('|', limit = 2).map { it.trim().split(" ").mapTo(ArrayList(2)) { it.toInt() } }
Rule.OrRule(p[0], if (p.size == 2) p[1] else null)
} else {
Rule.CharRule(parts[1].trim().replace("\"", "")[0])
}
parsedRules[index] = rule
}
return parsedRules
}
private fun matches(input: String, queue: ArrayDeque<Int>, rules: Map<Int, Rule>): Boolean =
if (queue.isEmpty()) input.isEmpty()
else if (input.isEmpty()) queue.isEmpty()
else when (val rule = rules[queue.pop()]!!) {
is Rule.CharRule -> input[0] == rule.value && matches(input.drop(1), queue, rules)
is Rule.OrRule -> rule.all.any { matches(input, queue.clone().apply { it.asReversed().forEach { addFirst(it) } }, rules) }
}
fun part1(): Int {
val rules = parseRules()
return messages.count { matches(it, ArrayDeque<Int>().apply { add(0) }, rules) }
}
fun part2(): Int {
val rules = parseRules().toMutableMap()
rules[8] = Rule.OrRule(listOf(42), listOf(42, 8))
rules[11] = Rule.OrRule(listOf(42, 31), listOf(42, 11, 31))
return messages.count { matches(it, ArrayDeque<Int>().apply { add(0) }, rules) }
}
}
-202
View File
@@ -1,202 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.days.geometry.Grid
import be.vandewalleh.aoc.days.geometry.gridOf
import be.vandewalleh.aoc.days.geometry.transformations
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Groups
import kotlin.math.sqrt
private typealias Tile = Grid<Char>
@Day(20)
class Day20(@Groups val input: List<List<String>>) {
private val tiles: Map<Int, Tile> = input
.map { it[0].let { it.substring(5 until it.indexOf(':')).toInt() } to it.drop(1) }
.associate { (id, tile) -> id to gridOf(tile) }
private fun Tile.allEdges() = listOf(edges(), edges().map { it.reversed() }).flatten()
private fun edgesMatch(a: Tile, b: Tile): Boolean {
val edges = b.allEdges()
return a.allEdges().any { a -> edges.any { a == it } }
}
private fun combine(tiles: List<Tile>) = sequence {
for (i in 0 until tiles.lastIndex) {
val a = tiles[i]
for (j in i + 1 until tiles.size) {
val b = tiles[j]
yield(a to b)
}
}
}
private fun tilesByNeighbourCount(): MutableMap<Int, MutableList<Tile>> {
val neighbours = combine(tiles.values.toList())
.filter { (a, b) -> edgesMatch(a, b) }
.map { it.toList() }
.flatten()
.groupBy { it }
.values
val map = mutableMapOf<Int, MutableList<Tile>>()
for (neighbour in neighbours) {
map.computeIfAbsent(neighbour.size) { mutableListOf() }.add(neighbour.first())
}
return map
}
fun part1() = tilesByNeighbourCount()[2]!!
.map { tile -> tiles.entries.find { it.value == tile }!!.key.toLong() }
.reduce { acc, id -> acc * id }
private fun neighboursCount(grid: Grid<*>, x: Int, y: Int): Int {
var neighboursCount = 2
if (x != 0 && x != grid.lastColumnIndex) neighboursCount++
if (y != 0 && y != grid.lastRowIndex) neighboursCount++
return neighboursCount
}
private fun isLeftOk(grid: Grid<Tile?>, x: Int, y: Int, candidate: Tile) = grid[x - 1, y]
?.let { left -> candidate.firstColumn() == left.lastColumn() }
?: true
private fun isTopOk(grid: Grid<Tile?>, x: Int, y: Int, candidate: Tile) = grid[x, y - 1]
?.let { top -> candidate.firstRow() == top.lastRow() }
?: true
private fun isBottomOk(grid: Grid<*>, x: Int, y: Int, candidate: Tile, neighbours: Map<Int, List<Tile>>) =
if (y == grid.lastRowIndex) true
else neighbours[neighboursCount(grid, x, y + 1)]!!
.filterNot { it == candidate }
.count { it.transformations().any { candidate.lastColumn() == it.firstColumn() } } == 1
private fun isRightOk(grid: Grid<*>, x: Int, y: Int, candidate: Tile, neighbours: Map<Int, List<Tile>>) =
if (x == grid.lastColumnIndex) true
else neighbours[neighboursCount(grid, x + 1, y)]!!
.filterNot { it == candidate }
.count { it.transformations().any { candidate.lastRow() == it.firstRow() } } == 1
private fun assembleGrid(): Grid<Tile?> {
val size = sqrt(tiles.size.toDouble()).toInt()
val grid: Grid<Tile?> = Grid(Array(size) { Array(size) { null } })
val neighbours: MutableMap<Int, MutableList<Tile>> = tilesByNeighbourCount()
for (y in 0 until grid.height) {
for (x in 0 until grid.width) {
val neighboursCount = neighboursCount(grid, x, y)
val candidates = neighbours[neighboursCount]!!
val conditions = mutableListOf<(Tile) -> Boolean>()
conditions += { isLeftOk(grid, x, y, it) }
conditions += { isTopOk(grid, x, y, it) }
// why is this condition needed ?
if (x == 0 && y == 0) {
conditions += { isBottomOk(grid, x, y, it, neighbours) }
conditions += { isRightOk(grid, x, y, it, neighbours) }
}
var found: Tile? = null
outer@ for (candidate in candidates) {
for (transform in candidate.transformations()) {
if (conditions.all { it(transform) }) {
found = transform
candidates.remove(candidate)
break@outer
}
}
}
check(found != null)
grid[x, y] = found
}
}
return grid
}
private fun removeGaps(grid: Grid<Tile?>) {
for (y in 0 until grid.height) {
for (x in 0 until grid.width) {
grid[x, y] = removeGaps(grid[x, y]!!)
}
}
}
private fun removeGaps(tile: Tile): Tile {
val oldData: ArrayList<ArrayList<Char>> = tile.data
val newData = ArrayList<ArrayList<Char>>(oldData.size - 2)
oldData.subList(1, oldData.size - 1).forEach { d ->
val l = ArrayList<Char>().apply {
addAll(d.subList(1, d.size - 1))
}
newData.add(l)
}
return Tile(newData)
}
private fun gridToTile(grid: Grid<Tile?>): Tile {
val newData = ArrayList<ArrayList<Char>>()
for (y in 0 until grid.height) {
val row = grid.row(y)
for (yy in 0 until row[0]!!.height) {
val combinedRow = ArrayList<Char>().also { newData.add(it) }
row.forEach { combinedRow.addAll(it!!.row(yy)) }
}
}
return Tile(newData)
}
private fun Tile.subGridData(startX: Int, startY: Int, width: Int, height: Int): List<List<Char>> {
val newData = ArrayList<ArrayList<Char>>()
for (y in startY until startY + height) {
val row = ArrayList<Char>().also { newData.add(it) }
for (x in startX until startX + width) {
row.add(this[x, y]!!)
}
}
return newData
}
private fun List<List<Char>>.isMonster(monster: List<List<Char>>): Boolean {
val monsterRe = monster.joinToString("") { it.joinToString("") }.replace(" ", ".").toRegex()
val str = this.joinToString("") { it.joinToString("") }
return monsterRe.matches(str)
}
fun part2(): Int {
val grid = assembleGrid()
removeGaps(grid)
val megaTile = gridToTile(grid)
val monster: List<List<Char>> = """
| # |
|# ## ## ###|
| # # # # # # |
""".trimMargin("|").lines().map { it.toCharArray().dropLast(1) }
val monsterWidth = monster[0].size
val monsterHeight = 3
val monsterSquares = monster.flatten().count { it == '#' }
val squares = megaTile.data.flatten().count { it == '#' }
for (g in megaTile.transformations()) {
var count = 0
for (y in 0 until g.lastRowIndex - monsterHeight) {
for (x in 0 until g.lastColumnIndex - monsterWidth) {
val subgrid = g.subGridData(x, y, monsterWidth, monsterHeight)
if (subgrid.isMonster(monster)) {
count++
}
}
}
if (count != 0) return squares - (count * monsterSquares)
}
error("No monsters found")
}
}
-57
View File
@@ -1,57 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Lines
import org.eclipse.collections.api.factory.Bags
import org.eclipse.collections.api.multimap.set.MutableSetMultimap
import org.eclipse.collections.impl.factory.Multimaps
@Day(21)
class Day21(@Lines val input: List<String>) {
private val foods = input.map { line ->
val parOpen = line.indexOf('(')
val ingredients = line.substring(0 until parOpen - 1).split(" ")
val allergens = line.substring(parOpen + 1 until line.length - 1).removePrefix("contains ").split(", ")
ingredients to allergens
}
private val allIngredients = foods.flatMap { it.first }.toSet()
private val allAllergens = foods.flatMap { it.second }.toSet()
private val dangerousIngredients = dangerousIngredients()
fun part1(): Int {
val occurrences = Bags.mutable.empty<String>()
foods.forEach { (ingredients) -> occurrences.addAll(ingredients) }
return allIngredients.filter { !dangerousIngredients.containsValue(it) }
.map { ingredient -> occurrences.count { it == ingredient } }
.sum()
}
fun part2(): String {
while (!dangerousIngredients.multiValuesView().all { it.size() == 1 }) {
dangerousIngredients.multiValuesView()
.filter { it.size() == 1 }
.map { it.first() }
.forEach { removeMe ->
dangerousIngredients.keyMultiValuePairsView()
.filter { it.two.size() != 1 && it.two.contains(removeMe) }
.forEach { dangerousIngredients.remove(it.one, removeMe) }
}
}
return dangerousIngredients.keySet().sorted().joinToString(",") { dangerousIngredients.get(it).first() }
}
private fun dangerousIngredients(): MutableSetMultimap<String, String> {
val map = Multimaps.mutable.set.empty<String, String>()
allAllergens.forEach { map.putAll(it, allIngredients) }
foods.forEach { (ingredients, allergens) ->
allergens.forEach { allergen ->
allIngredients.forEach {
if (!ingredients.contains(it)) map.remove(allergen, it)
}
}
}
return map
}
}
-76
View File
@@ -1,76 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Groups
private data class PlayedGame(val a: List<Int>, val b: List<Int>)
@Day(22)
class Day22(@Groups val input: List<List<String>>) {
private val one = input[0].drop(1).map { it.toInt() }
private val two = input[1].drop(1).map { it.toInt() }
fun part1(): Long {
val oneDeque = ArrayDeque(one)
val twoDeque = ArrayDeque(two)
while (oneDeque.isNotEmpty() && twoDeque.isNotEmpty()) {
val a = oneDeque.removeFirst()
val b = twoDeque.removeFirst()
if (a > b) {
oneDeque.addLast(a)
oneDeque.addLast(b)
} else {
twoDeque.addLast(b)
twoDeque.addLast(a)
}
}
val deque = if (oneDeque.isEmpty()) twoDeque else oneDeque
return deque.score()
}
private fun ArrayDeque<Int>.score() =
asReversed().mapIndexed { index, value -> (index + 1).toLong() * value.toLong() }.sum()
fun part2(): Long {
val oneDeque = ArrayDeque(one)
val twoDeque = ArrayDeque(two)
val winner = playGame(oneDeque, twoDeque)
val deque = if (winner == 1) oneDeque else twoDeque
return deque.score()
}
private fun playGame(one: ArrayDeque<Int>, two: ArrayDeque<Int>): Int {
val playedGames = mutableSetOf<PlayedGame>()
while (one.isNotEmpty() && two.isNotEmpty()) {
if (!playedGames.add(PlayedGame(one.toList(), two.toList()))) return 1
val a = one.removeFirst()
val b = two.removeFirst()
val winner = when {
one.size >= a && two.size >= b -> playGame(
ArrayDeque(one.take(a)),
ArrayDeque(two.take(b))
)
a > b -> 1
else -> 2
}
if (winner == 1) {
one.addLast(a)
one.addLast(b)
} else {
two.addLast(b)
two.addLast(a)
}
}
return if (one.isEmpty()) 2 else 1
}
}
-111
View File
@@ -1,111 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Text
@Day(23)
class Day23(@Text val input: String) {
private val cups = input.toCharArray().map { it.toString().toInt() }
private fun <T> ringSequence(head: Ring.Node<T>) = generateSequence(head) { it.next }
class Ring<T>(items: Iterable<T>) {
class Node<T>(var value: T) {
lateinit var next: Node<T>
override fun toString() = "Node($value -> ${next.value})"
}
private var last: Node<T>? = null
private var first: Node<T>? = null
init {
items.forEach { item ->
val node = Node(item)
if (first == null) first = node
last?.next = node
last = node
}
check(first != null && last != null)
last?.next = first!!
}
fun first() = first!!
}
private fun Ring.Node<Int>.cached(size: Int): Array<Ring.Node<Int>> =
arrayOfNulls<Ring.Node<Int>>(size + 1).also { array ->
array[0] = Ring.Node(-1)
ringSequence(this).take(size).forEach { array[it.value] = it }
} as Array<Ring.Node<Int>>
fun part1(): String {
var currentNode = Ring(cups).first()
val cache = currentNode.cached(cups.size)
val max = cups.maxOrNull()!!
repeat(100) { currentNode = move(max, cache, currentNode) }
return ringSequence(currentNode)
.dropWhile { it.value != 1 }
.drop(1)
.take(cups.size - 1)
.map { it.value }
.joinToString("")
}
fun part2(): Long {
fun fillCups(): List<Int> {
val cups = ArrayList<Int>(1_000_000)
cups.addAll(this.cups)
val highest = this.cups.maxOrNull()!!
for (i in 1..1_000_000 - cups.size) {
cups.add(highest + i)
}
return cups
}
val size = 1_000_000
var currentNode = Ring(fillCups()).first()
val cache = currentNode.cached(size)
repeat(10_000_000) { currentNode = move(max = size, cache, currentNode) }
val one = cache[1]
val a = one.next
val b = a.next
return a.value.toLong() * b.value.toLong()
}
private fun move(max: Int, cache: Array<Ring.Node<Int>>, current: Ring.Node<Int>): Ring.Node<Int> {
val a = current.next
val b = a.next
val c = b.next
current.next = c.next
val aa = a.value
val bb = b.value
val cc = c.value
val destinationNode: Ring.Node<Int>
var i = current.value - 1
while (true) {
if (i < 1) i = max
val value = cache[i].value
if (value == aa || value == bb || value == cc) {
i--
} else {
destinationNode = cache[i]
break
}
}
val destinationNextNode = destinationNode.next
destinationNode.next = a
c.next = destinationNextNode
return current.next
}
}
-65
View File
@@ -1,65 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Lines
import org.eclipse.collections.api.bag.Bag
import org.eclipse.collections.api.bag.MutableBag
import org.eclipse.collections.api.factory.Bags
@Day(24)
class Day24(@Lines val input: List<String>) {
private data class HexPoint(val x: Int, val y: Int, val z: Int) {
fun translate(other: HexPoint) = HexPoint(this.x + other.x, this.y + other.y, this.z + other.z)
}
private enum class Direction(vararg coordinates: Int) {
E(1, -1, 0),
SE(0, -1, 1),
SW(-1, 0, 1),
W(-1, 1, 0),
NW(0, 1, -1),
NE(1, 0, -1);
val coordinates = HexPoint(coordinates[0], coordinates[1], coordinates[2])
}
private fun parseTile(line: String) = "e|se|sw|w|nw|ne".toRegex()
.findAll(line)
.flatMap { it.groupValues }
.map { Direction.valueOf(it.toUpperCase()) }
.toList()
private val tiles = input.map { parseTile(it) }.map {
it.map { it.coordinates }.reduce { acc, ints -> acc.translate(ints) }
}
fun part1() = Bags.immutable.ofAll(tiles).selectBlacks().size()
private fun Bag<HexPoint>.selectBlacks() = selectByOccurrences { it % 2 == 1 }
private fun HexPoint.adjacents() = Direction.values().map { this.translate(it.coordinates) }
// black -> odd
// white -> even || not in bag -> !in black
private fun day(bag: MutableBag<HexPoint>) {
val blacks = bag.selectBlacks().toSet()
val all = (bag + bag.flatMap { it.adjacents() }).toSet()
for (tile in all) {
val adjacents = tile.adjacents()
val adjacentBlacks = adjacents.count { it in blacks }
val isBlack = tile in blacks
if (isBlack && (adjacentBlacks == 0 || adjacentBlacks > 2)) bag.setOccurrences(tile, 2)
else if (!isBlack && adjacentBlacks == 2) bag.setOccurrences(tile, 1)
}
}
fun part2(): Int {
val bag = Bags.mutable.ofAll(tiles)
repeat(100) { day(bag) }
return bag.selectBlacks().size()
}
}
-44
View File
@@ -1,44 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.input.Day
import be.vandewalleh.aoc.utils.input.Lines
@Day(25)
class Day25(@Lines val input: IntArray) {
private val doorPublicKey = input[0]
private val cardPublicKey = input[1]
private fun encryptionKey(loopSize: Int, publicKey: Int) = transformSubjectNumber(loopSize, publicKey)
private fun transformSubjectNumber(loopSize: Int, subjectNumber: Int): Int {
var number = 1L
repeat(loopSize) {
number *= subjectNumber
number %= 20201227
}
return number.toInt()
}
private fun transformSubjectNumberStartingWith(currentNumber: Long, subjectNumber: Int): Long {
var number = currentNumber
number *= subjectNumber
number %= 20201227
return number
}
private fun findLoopSize(expectedPublicKey: Long): Int {
var computedPublicKey = 1L
var loopSize = 0
do {
computedPublicKey = transformSubjectNumberStartingWith(computedPublicKey, 7)
loopSize++
} while (computedPublicKey != expectedPublicKey)
return loopSize
}
fun part1(): Int {
val cardLoopSize = findLoopSize(cardPublicKey.toLong())
return encryptionKey(cardLoopSize, doorPublicKey)
}
}
-7
View File
@@ -1,7 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.factory.createDay
fun main() = with(createDay<Day15>()) {
println(part1())
}
-64
View File
@@ -1,64 +0,0 @@
@file:Suppress("MemberVisibilityCanBePrivate")
package be.vandewalleh.aoc.days.geometry
class Grid<T> {
val data: ArrayList<ArrayList<T>> = ArrayList()
constructor(data: Iterable<Iterable<T>>) {
data.forEach {
this.data.add(ArrayList(it.toList()))
}
}
constructor(data: Array<Array<T>>) {
data.forEach {
this.data.add(ArrayList(it.toList()))
}
}
val width get() = data[0].size
val lastColumnIndex get() = data[0].size - 1
val height get() = data.size
val lastRowIndex get() = data.size - 1
operator fun get(x: Int, y: Int): T? {
if (y !in 0..lastRowIndex) return null
val row = data[y]
return if (x !in 0..lastColumnIndex) null
else row[x]
}
operator fun set(x: Int, y: Int, value: T) {
data[y][x] = value
}
fun row(y: Int): List<T> = data[y]
fun firstRow() = row(0)
fun lastRow() = row(height - 1)
fun column(x: Int): List<T> = data.map { it[x] }
fun firstColumn() = column(0)
fun lastColumn() = column(width - 1)
fun edges() = listOf(row(0), column(0), row(lastRowIndex), column(lastColumnIndex))
override fun toString() = buildString {
data.forEach { line ->
append(line.joinToString(""))
appendLine()
}
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as Grid<*>
if (data != other.data) return false
return true
}
override fun hashCode() = data.hashCode()
}
@@ -1,7 +0,0 @@
package be.vandewalleh.aoc.days.geometry
fun gridOf(lines: List<String>): Grid<Char> =
Grid(lines.map { it.toCharArray().toList() })
fun gridOf(lines: String): Grid<Char> =
gridOf(lines.lines())
@@ -1,51 +0,0 @@
package be.vandewalleh.aoc.days.geometry
private fun <T> ArrayList<T>.reversed(): ArrayList<T> {
val out = ArrayList<T>(this.size)
asReversed().forEach { out.add(it) }
return out
}
fun <T> Grid<T>.flipVertically(): Grid<T> = Grid(data.reversed())
fun <T> Grid<T>.flipHorizontally(): Grid<T> {
val out = ArrayList<ArrayList<T>>(height)
for (y in 0 until height) {
out.add(data[y].reversed())
}
return Grid(out)
}
fun <T> Grid<T>.rotateRight(): Grid<T> {
val out = ArrayList<ArrayList<T>>(width)
for (x in 0 until width) {
out.add(ArrayList<T>(height))
for (y in 0 until height) {
out[x].add(data[y][x])
}
}
return Grid(out).flipHorizontally()
}
fun <T> Grid<T>.rotateLeft(): Grid<T> {
val data = flipHorizontally().data
val out = ArrayList<ArrayList<T>>(width)
for (x in 0 until width) {
out.add(ArrayList<T>(height))
for (y in 0 until height) {
out[x].add(data[y][x])
}
}
return Grid(out).flipHorizontally()
}
fun <T> Grid<T>.transformations(): Sequence<Grid<T>> = sequence {
yield(this@transformations)
yield(flipHorizontally())
yield(flipVertically())
yield(rotateLeft())
yield(rotateRight())
yield(flipHorizontally().flipVertically())
yield(flipVertically().rotateRight())
yield(flipVertically().rotateLeft())
}
-263
View File
@@ -1,263 +0,0 @@
departure location: 45-535 or 550-961
departure station: 45-278 or 294-974
departure platform: 46-121 or 138-965
departure track: 38-149 or 173-949
departure date: 34-223 or 248-957
departure time: 32-64 or 79-952
arrival location: 49-879 or 905-968
arrival station: 47-306 or 323-973
arrival platform: 46-823 or 834-971
arrival track: 30-464 or 486-963
class: 40-350 or 372-965
duration: 47-414 or 423-950
price: 45-507 or 526-956
route: 42-779 or 799-970
row: 26-865 or 872-955
seat: 43-724 or 739-970
train: 25-914 or 926-958
type: 33-205 or 218-965
wagon: 43-101 or 118-951
zone: 45-844 or 858-970
your ticket:
173,191,61,199,101,179,257,79,193,223,139,97,83,197,251,53,89,149,181,59
nearby tickets:
949,764,551,379,767,144,556,835,638,591,653,872,198,825,690,527,260,396,873,333
438,627,99,622,408,671,695,561,695,121,706,144,55,985,566,706,255,595,680,407
879,876,665,928,874,436,766,328,620,267,995,54,430,503,86,936,489,305,64,688
613,812,756,258,341,765,91,551,859,379,447,842,148,501,293,766,93,532,939,406
349,340,670,248,813,557,249,949,506,656,100,19,204,409,944,659,777,843,712,801
438,52,529,556,672,115,570,633,820,770,603,837,260,251,723,621,381,182,494,431
948,673,202,330,552,258,406,184,177,239,774,185,638,386,834,608,835,636,805,92
573,643,267,378,178,821,442,141,872,826,565,626,667,860,405,610,407,688,705,695
818,724,446,459,145,373,859,346,702,441,446,753,320,426,664,177,619,712,739,342
607,499,226,80,719,682,556,486,346,221,597,936,573,84,760,671,395,413,454,768
743,504,830,195,413,698,93,375,565,695,947,636,602,681,436,265,614,604,632,706
463,353,944,569,175,535,616,452,141,621,84,335,302,275,550,438,173,617,843,645
685,400,777,752,839,86,180,754,231,450,342,341,440,57,271,202,494,591,223,707
838,147,937,451,96,265,488,345,334,871,767,450,340,576,816,335,143,445,339,379
502,566,121,743,99,909,876,265,204,799,566,387,672,102,713,559,773,770,571,609
428,712,575,759,708,272,629,862,569,856,402,82,424,837,336,643,841,944,603,436
273,987,944,534,862,943,267,741,562,327,193,838,822,933,860,933,459,811,622,383
423,937,320,374,801,942,490,257,646,724,558,507,198,601,713,719,667,260,585,948
404,679,328,916,688,615,345,688,556,146,452,306,89,742,808,141,816,85,938,457
180,335,648,810,119,202,393,268,921,177,92,462,605,615,248,599,394,303,269,599
941,261,695,643,381,830,753,705,84,694,305,61,556,256,599,653,388,566,626,759
148,340,708,139,625,680,713,695,583,356,182,457,458,95,841,496,591,347,392,670
534,434,615,686,348,621,832,275,380,667,811,590,389,585,528,652,862,617,778,535
81,653,435,681,584,455,261,928,121,863,263,807,599,593,691,320,495,329,879,380
739,632,692,639,702,94,274,910,707,758,196,934,490,189,169,333,807,396,448,719
590,588,570,617,910,928,304,663,531,470,203,505,277,669,841,593,668,693,338,671
938,259,221,406,579,390,619,327,824,601,502,529,573,912,930,396,940,139,501,819
633,326,149,590,618,581,583,195,755,678,746,717,527,326,557,775,330,518,807,192
438,722,427,758,324,251,757,753,297,300,438,304,588,633,254,823,835,766,977,195
335,430,937,298,266,258,331,551,747,644,575,120,373,629,652,583,777,131,804,941
427,663,220,864,378,80,945,695,7,584,679,375,566,176,300,631,932,558,639,681
577,644,678,146,396,443,94,488,670,691,260,931,834,755,577,395,420,94,57,664
660,574,799,666,748,858,393,603,120,391,561,138,631,578,463,344,382,747,699,102
676,866,348,927,187,452,615,943,52,752,749,707,699,615,840,563,653,271,844,223
573,453,587,838,260,802,768,303,382,817,429,486,586,184,502,156,486,486,816,203
433,285,809,588,756,504,121,598,265,273,666,769,799,405,218,189,221,191,681,712
612,63,678,529,775,684,531,838,617,572,555,386,628,272,765,603,23,393,743,753
775,704,877,81,597,529,579,699,527,662,652,456,801,863,94,335,679,820,415,714
714,306,176,652,492,446,325,580,647,149,554,708,504,327,624,245,702,506,843,756
173,294,877,499,714,200,253,808,661,664,14,879,146,533,693,527,424,660,274,204
564,434,116,585,801,617,764,860,376,185,639,698,863,620,753,253,253,182,93,491
685,559,336,773,906,568,936,270,938,397,95,264,95,119,266,21,250,709,528,591
174,57,400,298,350,799,139,603,686,586,601,663,527,248,560,613,838,742,698,225
335,275,260,293,142,266,611,685,400,840,337,584,276,770,698,191,665,668,685,50
706,97,296,848,85,63,600,191,120,490,905,776,581,435,265,530,602,61,596,646
327,663,656,436,773,760,255,609,655,452,439,490,254,939,327,815,600,235,507,811
334,58,143,417,630,455,454,390,327,339,906,494,739,188,260,842,298,740,680,662
398,346,388,443,680,563,666,666,438,764,559,926,909,948,437,72,493,809,397,381
176,272,305,197,346,610,179,253,506,413,174,506,647,689,338,570,873,929,317,820
553,946,409,562,258,398,187,429,819,104,909,571,534,266,739,258,643,60,601,379
678,905,187,870,253,184,489,414,690,184,175,741,197,626,388,204,612,637,219,259
346,665,800,614,94,264,658,811,374,640,666,295,449,976,563,696,695,675,527,694
821,387,760,379,635,251,51,911,54,543,710,808,453,873,746,326,258,306,411,764
186,487,378,937,559,575,382,931,664,697,534,576,715,940,984,628,409,651,676,665
502,393,59,176,760,326,106,378,96,573,344,174,652,294,650,703,402,297,185,52
834,433,613,554,764,839,493,752,185,254,388,83,769,621,623,17,607,330,529,690
818,21,649,258,186,258,775,449,454,912,61,603,578,578,410,603,770,254,535,269
757,615,389,650,749,630,560,257,269,822,412,740,759,941,59,835,522,462,494,531
570,764,174,296,499,867,277,700,820,380,663,718,756,462,496,564,562,698,265,147
500,680,271,610,396,820,250,827,87,768,671,906,706,865,300,560,815,691,745,907
385,346,945,504,411,291,566,530,677,685,95,659,393,692,683,822,553,640,753,204
492,821,178,186,488,140,411,739,135,582,445,776,222,699,656,633,879,807,591,428
635,931,935,304,84,634,416,670,611,773,64,821,570,389,504,671,927,773,333,906
807,626,617,932,187,402,581,640,693,551,458,583,444,126,695,711,221,327,835,947
679,750,506,101,705,335,568,615,550,388,497,940,861,260,714,776,333,993,388,753
197,656,802,589,341,993,378,390,347,403,927,593,928,673,747,554,680,775,342,639
639,76,742,603,424,219,754,458,257,350,186,805,193,764,390,627,749,342,433,439
629,704,941,304,637,860,661,388,139,404,945,647,573,840,886,149,667,382,399,747
588,195,763,438,835,707,220,268,838,574,402,980,372,347,92,205,261,86,681,86
266,739,816,2,585,701,841,600,590,497,204,743,383,810,140,617,864,770,705,300
62,673,949,391,765,184,305,528,101,192,708,275,561,649,606,527,687,315,197,633
433,419,644,531,626,534,300,263,265,257,618,303,631,194,675,684,694,669,861,721
692,764,408,248,459,176,691,179,252,618,685,456,431,119,948,334,104,433,581,85
333,341,627,766,620,263,720,118,690,914,641,204,189,722,197,912,612,65,930,906
711,387,815,619,202,592,613,221,765,403,715,939,844,715,537,204,176,683,656,746
91,927,559,933,197,406,641,658,391,199,339,272,383,932,829,196,739,755,720,430
864,603,696,455,752,374,703,98,508,119,756,331,758,396,600,258,842,191,350,526
633,121,659,428,179,562,715,821,404,260,587,760,570,707,711,566,570,642,824,560
774,22,878,300,676,763,95,931,268,574,82,490,218,937,602,940,665,97,60,566
223,632,412,385,909,707,336,937,808,743,775,705,99,984,380,384,585,99,337,724
947,709,610,646,665,593,278,755,556,606,189,679,403,377,677,84,392,108,638,651
262,424,498,429,623,385,496,138,696,693,258,454,273,868,533,834,257,100,459,99
817,56,51,544,631,258,101,384,841,906,637,681,772,189,305,181,200,608,839,932
141,409,907,665,54,177,349,173,4,448,843,717,380,253,598,140,570,820,502,948
184,920,382,142,342,530,612,431,196,710,101,704,398,862,612,377,173,876,218,757
811,800,437,212,756,425,584,616,384,119,839,334,934,600,534,178,86,624,532,711
938,334,603,142,54,695,5,874,779,700,632,99,942,223,661,579,807,707,614,602
665,296,52,621,320,434,570,506,687,908,905,714,185,683,758,617,644,82,95,716
656,685,176,452,385,195,375,87,814,290,52,683,413,456,457,656,143,634,174,659
756,765,269,251,263,616,715,637,760,454,533,489,52,251,418,306,202,838,180,198
877,557,220,115,249,774,63,97,348,119,940,444,486,616,926,82,256,585,619,772
758,337,98,360,296,453,739,807,390,634,497,820,381,179,349,714,676,256,765,60
50,619,639,941,571,66,267,454,561,379,143,452,554,393,759,149,148,875,397,640
274,523,275,683,384,620,94,811,79,839,776,589,507,194,430,331,95,606,631,88
165,121,84,575,201,409,82,800,401,52,301,493,325,691,503,336,555,774,706,251
576,119,938,333,462,449,339,382,266,808,145,763,459,810,910,342,640,199,617,520
408,762,183,409,763,59,333,932,323,59,560,703,306,856,269,652,298,98,488,587
344,948,221,749,835,316,779,860,56,205,723,712,553,346,721,305,494,338,186,819
184,773,66,619,554,807,120,437,774,645,272,89,710,378,659,403,253,533,396,715
610,579,565,758,336,817,690,406,289,724,618,200,188,486,529,488,841,582,101,671
14,325,750,801,182,263,858,550,710,391,633,768,265,601,910,687,429,689,337,402
200,653,645,875,527,382,348,424,909,810,186,426,60,682,90,83,121,595,116,834
305,300,686,769,590,90,764,551,426,863,381,506,721,612,627,323,177,4,704,529
416,277,175,662,688,698,437,586,777,425,533,858,222,60,140,719,493,558,695,768
863,268,739,653,512,779,437,248,300,451,195,874,436,772,332,589,183,746,94,756
621,97,575,770,327,803,659,397,346,907,720,862,770,436,520,694,445,691,810,553
436,642,811,221,758,406,362,442,501,374,684,53,660,146,205,383,677,597,430,201
926,439,650,266,578,486,189,819,539,760,872,560,910,589,821,605,694,142,762,180
499,436,417,535,718,674,698,174,696,96,440,490,304,199,406,559,185,328,573,685
92,803,711,603,721,185,450,676,809,132,569,427,596,248,745,498,574,388,879,667
253,339,295,805,61,620,140,376,332,712,94,841,528,621,686,756,307,610,255,533
175,429,628,629,407,260,647,276,619,666,820,145,611,380,750,21,91,629,62,445
580,750,665,742,935,591,405,643,195,295,592,773,455,545,449,347,701,912,143,380
698,948,527,822,713,52,683,671,759,767,684,184,817,392,983,60,396,599,907,342
138,630,6,583,526,401,187,945,836,690,841,531,563,910,408,779,644,660,683,374
280,669,596,815,346,497,740,493,596,767,675,248,817,222,860,457,938,435,121,120
144,631,771,437,616,745,668,604,142,862,550,324,570,345,124,622,93,59,619,79
393,442,549,374,222,447,601,753,373,455,440,582,751,435,596,691,187,686,179,347
298,616,59,623,447,51,909,755,71,709,701,406,697,373,875,754,573,332,754,767
709,201,430,81,608,688,939,496,569,260,711,935,943,304,87,617,744,165,487,626
294,446,946,700,392,880,758,687,656,751,395,407,266,443,61,629,820,458,434,179
648,669,942,695,587,813,803,254,173,633,376,14,574,702,711,654,761,740,297,597
435,774,935,592,779,494,635,406,573,723,994,139,772,562,707,637,839,635,380,82
413,630,657,637,328,614,574,741,687,445,413,777,202,244,200,682,506,644,348,806
575,712,119,720,695,920,679,300,488,583,933,410,555,762,90,192,138,252,556,95
813,457,628,648,696,403,382,806,338,183,344,146,799,315,497,401,328,63,747,198
622,652,329,198,710,442,178,754,817,744,675,819,815,922,764,659,934,582,61,302
392,533,619,311,299,593,707,876,331,714,590,447,690,753,463,914,526,822,698,655
665,754,602,614,646,594,550,619,560,393,428,747,634,271,274,339,627,826,909,585
942,809,614,568,815,344,514,779,927,580,564,909,347,838,403,752,618,566,530,443
692,820,746,88,640,933,118,183,586,744,745,268,616,250,581,639,615,858,386,984
87,631,934,841,613,249,691,97,336,886,270,613,634,692,669,257,558,399,306,93
930,717,669,275,189,258,703,272,602,718,530,331,218,660,271,834,653,836,408,421
383,804,698,441,417,403,940,858,700,875,770,198,714,435,569,486,487,177,80,949
202,142,864,348,426,537,204,615,681,676,933,178,816,396,175,769,423,766,879,593
592,309,804,638,197,759,426,577,441,409,928,571,800,506,275,768,689,333,932,937
509,607,248,556,575,424,435,942,490,678,563,677,374,295,629,666,252,337,578,745
827,754,62,747,686,627,671,98,708,686,407,599,835,205,805,534,741,201,384,189
623,434,15,496,89,655,146,190,816,63,423,496,635,948,910,934,81,641,437,614
495,52,634,181,376,500,680,57,497,717,14,679,148,406,661,452,906,264,526,401
97,188,330,948,374,251,633,639,434,777,913,529,679,605,76,625,550,939,762,445
859,675,304,473,427,261,640,196,647,350,686,58,202,908,912,174,447,590,275,401
372,748,687,696,381,201,569,676,147,516,338,428,394,148,391,338,819,766,707,585
769,449,505,602,814,644,272,945,773,424,444,811,417,709,100,862,596,628,450,346
426,228,424,384,257,681,383,639,554,551,701,942,95,100,842,396,909,609,626,622
397,589,766,277,459,819,85,807,295,488,449,399,339,532,378,420,144,750,841,145
683,626,645,75,265,267,773,550,595,604,328,747,262,647,201,590,201,906,932,445
618,932,345,435,532,276,277,532,813,459,764,327,979,388,634,914,452,396,391,64
668,53,721,716,591,433,265,190,763,327,693,926,648,84,98,863,770,621,638,977
685,834,490,686,402,768,575,741,930,582,724,389,551,22,838,665,627,460,590,261
225,384,397,667,843,411,673,56,120,697,220,623,376,101,305,185,807,698,637,599
687,375,914,602,806,372,491,560,608,573,80,758,632,932,599,610,327,695,944,987
676,637,860,718,698,193,71,187,684,335,596,340,673,81,860,630,877,340,948,273
249,716,674,400,553,567,698,505,834,85,424,597,706,581,740,3,100,804,652,274
837,836,437,872,220,502,375,643,328,490,0,662,267,648,222,344,399,555,944,946
121,717,463,643,406,261,391,646,181,641,336,651,86,275,494,607,353,84,384,434
650,252,13,259,334,840,601,249,199,607,258,629,259,678,611,100,696,339,765,56
449,692,80,752,778,675,496,940,934,98,189,552,679,629,110,277,192,399,696,739
190,589,432,913,606,839,121,82,358,384,701,760,618,927,838,912,139,937,326,328
935,276,427,859,504,758,716,753,276,935,672,457,937,800,192,356,101,679,699,757
249,830,752,560,801,199,594,722,875,637,99,579,740,762,58,710,149,657,218,605
935,949,653,453,949,930,802,501,768,275,905,500,177,217,298,768,423,655,187,568
608,87,296,220,982,200,676,661,147,931,496,600,333,683,192,462,691,400,812,198
770,435,844,907,402,186,706,433,532,656,696,837,688,774,218,826,575,324,441,874
680,679,223,459,803,100,300,577,636,751,383,879,404,621,646,306,827,400,413,808
805,991,623,83,626,615,505,682,757,491,941,295,266,487,807,221,526,914,686,193
694,622,82,566,187,944,390,431,433,659,837,937,345,513,504,179,306,324,610,601
660,456,823,760,914,52,773,272,251,815,412,683,266,819,119,111,683,593,487,426
101,278,712,51,187,710,270,598,219,940,612,182,389,999,341,325,626,302,770,572
913,537,624,602,584,928,630,862,275,179,803,913,928,805,530,388,445,593,629,294
111,668,811,864,632,261,929,306,451,665,503,439,88,817,570,874,838,555,304,349
692,263,255,192,739,621,768,262,318,373,459,487,680,704,799,583,428,447,705,834
306,406,813,692,107,89,177,597,711,223,408,862,628,603,582,176,142,83,248,657
395,566,620,663,335,557,385,599,341,810,459,706,805,873,305,875,262,418,613,553
840,563,100,626,823,186,600,668,945,314,323,442,99,705,684,638,859,564,669,583
714,334,464,911,406,196,683,931,62,301,98,743,450,416,182,860,197,840,634,599
774,948,146,893,944,775,339,655,120,176,650,277,712,707,81,140,377,573,487,630
685,697,143,167,668,773,946,423,859,766,266,696,375,580,264,640,615,807,148,302
584,124,649,752,220,202,449,935,97,189,64,762,927,432,432,714,80,914,426,188
836,176,180,839,740,420,54,946,934,149,384,603,743,564,678,662,720,377,461,821
443,837,385,124,374,267,555,746,459,823,935,586,180,659,632,662,660,934,530,949
940,874,96,101,801,227,948,553,589,744,698,656,272,278,276,626,337,452,764,702
430,558,528,533,618,710,321,277,761,937,277,205,914,405,765,779,435,306,119,624
176,843,763,380,908,190,931,769,327,491,333,463,89,172,838,349,809,675,505,632
437,764,275,681,911,752,634,340,621,55,491,400,555,751,143,385,575,552,551,357
749,179,843,429,61,669,426,709,624,74,264,333,631,934,808,196,200,944,526,176
368,195,441,183,251,699,705,802,295,770,762,819,254,203,669,578,298,600,89,660
376,178,807,375,628,691,685,299,683,333,824,447,506,305,779,778,62,874,182,303
536,744,502,769,182,299,184,344,803,619,504,86,769,638,811,836,745,597,614,626
451,430,651,761,60,844,118,591,776,165,451,573,772,839,96,652,878,807,676,930
526,589,622,768,773,259,304,262,261,54,249,555,426,865,120,520,54,706,430,323
97,844,261,260,633,739,761,805,179,178,566,754,330,911,311,58,698,101,276,741
564,379,453,342,193,676,99,278,443,278,325,257,487,744,299,538,606,335,438,761
740,97,612,392,272,264,724,252,117,708,818,562,810,675,196,372,749,454,499,560
779,990,410,448,696,391,672,441,146,581,554,694,768,383,405,692,675,776,936,342
219,140,563,457,455,326,608,755,720,680,56,412,459,687,925,98,183,802,841,740
322,81,594,687,52,61,427,173,626,673,863,945,174,594,200,688,770,876,768,553
815,611,595,454,441,681,526,297,942,301,447,426,100,755,191,645,203,374,276,77
86,385,659,621,584,684,51,816,347,499,603,488,396,67,432,342,687,816,94,260
437,778,345,504,574,862,609,843,667,251,704,84,258,457,647,429,875,743,814,833
676,672,942,197,505,390,568,719,931,947,276,120,824,188,594,808,563,876,775,909
762,752,940,230,341,118,623,404,716,120,768,101,834,176,755,486,141,184,577,767
721,676,437,454,391,303,810,220,191,178,937,190,56,714,455,299,82,368,802,740
60,462,575,865,250,172,931,347,53,54,813,81,295,452,561,937,776,81,705,669
670,772,676,945,432,522,347,489,620,680,749,194,384,637,201,613,605,630,562,529
99,599,660,263,304,431,427,101,323,863,426,462,83,649,243,385,497,759,777,93
433,608,512,425,329,530,602,945,173,875,638,494,770,670,940,836,262,702,659,873
453,391,428,348,907,687,462,324,941,381,613,204,395,896,946,381,779,810,841,705
265,905,560,54,681,765,682,88,568,273,939,493,57,266,342,6,612,633,550,337
930,534,204,753,934,846,569,682,745,934,403,906,272,677,719,776,754,534,556,173
486,809,755,763,441,396,689,415,385,490,145,304,271,204,375,344,800,92,872,694
489,425,688,573,743,564,295,652,257,707,267,173,758,365,739,265,684,527,860,655
299,646,180,52,697,721,766,574,151,762,376,182,407,196,80,873,188,329,248,448
431,381,779,393,223,575,408,858,616,415,85,707,749,264,489,390,597,779,185,937
457,168,219,54,90,119,744,332,52,862,941,818,554,703,820,464,742,554,331,914
809,529,444,455,91,11,843,862,428,632,707,195,571,747,905,187,328,864,393,629
295,720,375,80,928,551,683,567,418,341,685,632,711,98,218,811,622,583,487,382
804,113,92,442,296,669,390,218,691,263,492,643,80,669,501,329,566,803,191,879
805,609,749,808,563,141,612,724,266,666,678,491,566,687,940,338,704,544,528,501
556,879,356,876,607,183,577,811,344,586,616,767,622,865,859,497,429,580,776,254
130,276,393,927,190,455,908,329,676,818,572,204,760,801,146,946,205,95,579,139
423,862,374,93,685,844,101,811,461,81,617,175,643,287,271,179,180,101,595,774
256,89,407,563,759,665,844,563,932,91,406,597,685,389,658,348,81,295,251,309
189,743,376,86,333,394,593,773,562,589,668,646,565,477,669,196,581,297,652,98
769,807,569,559,976,651,266,86,258,934,334,635,560,761,61,188,497,680,571,823
931,752,461,705,394,128,764,569,297,932,450,665,59,440,694,710,753,627,559,388
775,631,390,87,772,654,561,145,401,917,175,912,693,64,766,606,590,427,701,688
594,740,203,748,461,294,822,642,96,610,907,805,647,582,359,719,632,377,748,943
65,561,677,645,495,99,223,592,596,402,385,746,328,392,583,336,487,684,304,935
260,679,451,176,596,581,938,679,456,762,464,859,565,715,820,752,530,928,248,15
218,529,596,297,876,651,557,659,506,562,341,96,3,564,199,400,503,647,707,182
613,195,929,818,823,808,265,63,498,686,583,97,88,650,866,640,141,461,594,119
219,873,720,388,835,143,205,602,339,576,448,388,255,731,558,305,644,672,303,255
526,652,256,520,263,182,263,686,382,581,250,255,559,500,248,566,807,273,622,944
464,802,408,702,829,299,397,414,403,565,407,412,759,503,565,59,652,758,650,427
602,57,873,828,564,554,565,435,303,590,323,388,138,528,94,350,175,634,410,63
254,500,57,86,984,253,751,822,202,395,181,719,812,940,625,640,615,749,437,610
326,631,940,409,753,368,438,202,553,446,592,876,818,684,617,843,753,575,800,695
-8
View File
@@ -1,8 +0,0 @@
##..#.#.
#####.##
#######.
#..#..#.
#.#...##
..#....#
....#..#
..##.#..
-372
View File
@@ -1,372 +0,0 @@
6 + (3 + 6 + 5 * 4) * (4 + 3) * 8 + 6 + 6
7 + 6 + (9 + 4 * (8 + 7 * 8 + 2 * 7 * 9) * 9 + 5 + 3) + 6 + (7 + 5 + 7 * 9 + 9) * ((4 + 9 * 3 * 4 * 3) + 6 * 8)
3 + (6 + 4 * (8 + 4 * 3 + 8) * 7 + 5 + 4) * 3 * 2 + 5 + 4
2 * 4 + 4 + (5 * 9 + 3 + 9) * 6 * 2
3 * 7 + 4 + 6 * ((8 * 9 * 2 * 9) + (9 + 3 * 6) + (3 + 4 * 8 + 2) * 2) * 2
(9 * 2 * 7 * 5) * (6 + 3 * 3 * 3) + 5 + 9
(7 * 2) + ((7 * 3 * 7 + 2) * 3)
2 + ((4 * 8) + 6 * (3 + 5) * 4 * (6 * 7) * 4) * 8 + (7 * 5 * (8 * 3 * 8) * 5) + 6 * 2
(2 * 4 + (4 * 2 * 2 + 3 + 8 * 5)) * (3 * 4 + 6 + 7 * 5) * 5 * 5 + 6 * 7
4 * 8
5 * (5 + (3 + 2 + 7 * 6)) + 4
(8 * 2) * 8 * 9 * 7 + (9 * 6 * 6 + 4) + 2
2 * (3 * 8 + (3 + 5) + 4) * 7 + 8 + 3
6 * 2 * 5 * 9 * 4
(5 + 5 + 5 * 2 + 3 + 8) * 5 * 2 + 9 + (8 + 8)
5 + 6 + 3 * (2 * (4 + 9 + 7 * 8) * 9 + 4 + 8) * (5 * 7 * 9 * 5 * (3 + 2 * 6 * 4))
3 + (2 * 4) + 8 * (3 + 5) + 9 * 8
((4 * 7 + 5 * 2 * 3 + 9) + 4 + 6 * 9 + 6 + (6 + 9)) * 4
2 + (2 + (2 * 6 * 3 + 2 * 6)) * 9 * 7 + (7 + 7 + 2) + 5
7 + 4 * 4 * 4 * 8 * 7
6 * (5 * (8 * 8 + 7) * (6 + 5 + 6 * 3 * 2) + 4) * 9 * 2 + 7
(8 + 8 * (6 * 3 * 2 * 8 * 5) * (2 * 3 * 5 + 2 * 6)) + 5 + 4 * (4 * (7 * 9 + 8 * 6) * 7 * 9)
9 * (2 + 7 + 3 + 7 * 9) + 3 + 6 + 7 + 4
9 * 9 * (4 + 8 + (9 * 8 + 6 + 2 + 6 + 3) * 4 * 9 + 5)
6 + 9 + 2 * ((6 + 9 + 5) + 8 + 6 + 5 + 5 + 6) + 7 * 8
((3 * 2 * 5 + 3) + 8 + 7 + 9 + 2 * 8) * 9
7 + 4 + 8 * 4 + 4 + (4 * (7 + 8 + 6 * 6 + 2) + (7 + 9 + 7 + 4) * 9 + 9 * 5)
8 * 8 * (2 + 9 * 3 * 5) + ((4 * 5 + 3 + 8 * 6 + 3) * 5 + 2 * (6 + 8 + 6) + 4) * 2
((3 + 4 * 2 * 9 * 2) + (8 * 3 + 7) * 7 + 6 + (4 * 7) * 5) + ((2 * 8 + 5 + 7 * 8 * 9) + 7 + 6 * 5)
6 + 4
2 + (6 * 9 + 8 + 2) * ((7 * 5) + 6 * 9 * 7 * 7) + 3 + 6
((6 * 8 * 7 * 2 * 6) * 9 + 6 * (6 * 8) + 9) + 3 + 9
9 + (8 * 9 * 9) + (4 + 8 * (2 + 9 + 4) + (3 + 9 * 4 * 5 * 8 * 3) * 9 + 2)
3 * 2 * (3 + (4 + 3 + 3 * 5) * 4 + 3 * 8)
2 * 5 + ((3 * 9 + 6 + 7) + (2 * 6 * 4 * 2 * 5 * 7)) * 5
3 + 8 * 9 * ((3 + 4) + 2 + 9 * (4 * 4) + 3) + 3 + (5 + 3 + 5)
(4 + 4 * 7 * (3 + 4) * 2) * 8 + (4 + 8 * 9 * 9 + 4) + 2
(3 + 7 + 9 * 6 * (8 * 4 + 6 + 4 + 5 + 7) * (3 + 9)) + 3 + 2 * 4 + 7 + 8
(3 * 4 * 9) * 2 + 4 + 6 + 2 * ((8 + 2 + 5) + 5)
4 * ((3 + 9 * 2 + 4) + 6 * 9 + 6 * 5 * 3) * 9 + 7 * (9 * 9)
(8 * 4 + 3) + 7 * 6 * 4 * 3 * ((6 + 5) * 6 * 2 * 6)
5 * (7 * 5 * (7 + 2 + 6 * 5 + 8) + 3 * 2) * 2 + 3
7 * 9 + (4 + 8 + 7) * 3 * (9 + (8 * 2 * 7 + 8 * 7 * 6) + 3 * 8 * 9)
8 * 3 + (2 + 9 + 8 * 5) * 8 * 2 + (4 * 8 * 7 + 5)
5 + 4 + (2 + 3) * 9 + (3 * 7 * 9 + 3) * 4
4 + (8 * 8 * 5 * 4)
9 * 9 + (5 + (9 * 5 * 2 * 5)) * 9
(3 * (6 * 7 * 8) + 4 * 4 + (2 * 2 * 9 * 4)) * 7 * 4
4 + (8 * (7 * 6 * 2 * 9) + 5 * (3 * 7 + 6 * 7) * 7 * 8) + (2 + 2 * 4 + (8 + 5 + 5 * 3 + 2 + 5) + (2 * 9))
2 * 7 * (3 * 8 + 2 * 7) * 2 + 8 + 8
3 + (2 * 8 + 2) + 9
((6 * 3 * 4 * 9 * 7 * 4) + 2 + (7 * 6 * 3 + 6) * 9 + (5 + 3 + 5 + 7)) + 6 + 8 + 3
4 * 6 + (9 + 6 * 4 * 9 + (5 + 3 + 5) + 4) * 2 + 8 + 9
(7 + 2 * (4 * 5 + 5 * 3) * 8) * 4 * 2 + 7 + ((6 + 8 * 8 + 2 * 4 + 5) + (9 + 3))
6 + 6 + 9 + 9 + (4 + (2 + 4 + 8 + 3 + 3) * 8 + 3 * 2) * 3
5 * (4 + 4 + 4 * 7 * 4) + 7 * 4
5 * ((5 * 8 * 9 + 2 + 8) * 6 + (5 + 3) * 4 + 8 + 3) * 8
5 + (2 * 7 + 2 * 6 * 3) + (2 * 3 * (3 + 6 * 9)) * 4
((4 + 6 * 3) + 6) * 6
3 * 4 + (9 + (4 * 9 * 9 + 6 * 2) + 4 * 9 + 2) * 3
7 * 9 * 9 + 7 * 3 + 9
6 + 2 * 4 + ((9 + 5) + 4)
(7 * 2 * 6) * 6 + (5 * 3) + ((7 * 4) + (2 * 8 + 6 + 9) * (7 + 4) + 8 + (2 + 7 + 6 * 3 * 7) * 3) * 3 + 2
7 * (7 * 3) * 7 + (6 * 2 + (8 + 6 + 5 + 8 * 4 + 9) + 4 * 2)
(6 + (9 * 4 * 9 + 9 * 7)) * (4 * 5 + 6 + 2 + 6 + 9) * 6
((6 * 7 * 3) * 6 * 9) + (8 * 4 * 8) * 3 * 9 * 6
5 * 6 * 6
9 + (3 * 8 * (5 + 9 * 4)) * (5 * 2 + 4 * 6 * 3)
(8 * 5 * 2) * (8 * 3) + 4 * 6
((8 * 8 + 3 * 5 + 6) * 8 * 5) * 5
(3 + 5 * 7 * (2 + 4 + 3) + (5 + 4 + 7 * 3 + 9) + 6) * 3
7 + 2 * 7 + ((6 * 9) + 2 + 9 * 2 * 5) + 2 + 7
5 * (5 + 8 * 3 + 9) * 4 * 9 * 2
(9 * 3 * 3 * 9 + 5 * 9) + 8 * ((2 * 7 + 5 * 3) + 8 * 9 + (6 * 6 + 9) * 6) + (8 + 6 * 7 * 9)
8 * ((2 * 4 + 6 * 6 + 9) + 7 * 4) * 6 + 5
3 * 9 * 8 + (4 + (2 * 7 * 6) * 9) + 7 + 9
2 * (6 + 5 * 7 * (8 + 8 * 9 + 9 + 3 * 8) + (6 * 6) * 4) + 5 * 7 + 3
6 + 2 + (3 + 7 + 8 * 2)
(9 + 2 + 6 * (9 * 9 * 7 * 5 * 6 + 6) + (2 * 2 * 5 * 7)) + 3 + 4
2 + 8 * 5 + (5 + 4 + 7 * 3 * 6 * 9) * 5 * 9
(4 * (2 * 6 * 8) * 9 * 9 + 6) * 8 * 9 + 6 * 4 + 5
4 * 4 * 4 * 4 + 5
(2 * 2 + 3 + 2 + 7 + 6) * (4 * 7 + (2 * 5))
3 * 7 + 8 + 9 + 7 + 9
((2 + 6) + 4) * (8 * 5 * 3 + (5 * 4 * 3 * 9) * (4 * 9 * 2 + 2 + 5 + 9) + 8) + 2
5 + 6 * (3 + (3 + 8 + 5) + 7 + 6 + 5) + 9 + 9
(9 + 3) + 3
9 * (3 + 3 * (8 * 7) * 8) * (6 * 8) + 4 + ((4 * 2 + 6 + 5) + 8)
(4 * (6 * 8 + 3 * 3 * 9 * 6) + 6) * 5 * 3
6 + 4 + 4
(5 * 9 + (6 + 2 + 6) + 5 + 2 + 9) + (6 * 8) + (2 * 5)
(4 * (4 * 3 * 2 * 4) + 5 + 6) + 4 * 9 * (4 + (9 + 7) * 8) * 6 * 9
4 * 3 + 5 * 2 * (2 * 8 * (6 + 8 * 7)) + 6
7 + 4 * 8 * 4 * (6 * 5 * 2 + 8 * 7)
8 * 2 * (7 + 6 + (4 * 7 + 8 * 5 * 2) + (3 * 7) * 8) * 8 * 4
(7 * 9 + 4 * 2 + 6 * 7) + (8 + 7) * 9 * 9 * 6
(6 * 8 + 5 + 9 * 2 * 3) * 4 * 4 * ((7 + 7) * 8 * 3 + (9 * 2 + 7) * 2 + 3)
3 * ((2 + 8 + 9 * 4 * 5 * 4) * 5 + 8 + 8) + 5 + 5 * 2
4 * 4 * (6 * 4 * (5 + 2 + 9 + 5 * 8)) * 6
9 + 4 + (7 * 3 * 4 + 9) + (8 + 2 * 9 * (2 + 9 * 2 * 7 + 7)) + (5 + 4 + (9 + 8) * 4 + 7) * 6
(3 + 5 + 4 + (2 * 3 + 7 + 2 + 2 + 5)) * (6 + 3 * 5 + (9 + 2 + 4 + 5)) + 7 * 8 * 6
4 + 3 + ((2 + 9 * 3 * 5 + 9 + 7) + (3 + 3 * 8 + 2 + 6) * 4 + 5) * 8 + 6 + 2
4 * 9
5 + (2 + (5 * 6 * 3 + 9) * (8 + 7) + 9 + 4) * 4 + 2 + 3
(6 + 6) + 8 + 4 * (3 * 9 * 7 * 9 * 8) * 4 * 8
(5 + 7 + 8 + 5 * 4) + 4 * 6 + (2 * 4 + 8 + 9 + 2)
(9 + 2 * (2 + 3) + 5 * 3) * 2
7 + 9 + 3 + 3 + (4 * 9 + (6 * 5 + 8 * 9) + 7 + 4) * 4
6 + (2 * (5 + 8 * 3 + 5 + 7 * 2) * 8) * ((2 + 9) * 6)
7 * (3 + 2 + (9 + 9 + 7 + 5 * 7 * 9) + 4)
(5 + 6) + 8 * 5 * 6
8 + (2 + 7 + 4 + 6 + (5 * 7 + 6 + 2 * 5 * 6)) * 3 * 2
(5 * 4 * 4) * ((8 * 3) + 7 * 6 * (7 * 6 * 3 + 8)) * 5 + (5 * 9 + 2 * (3 + 6 + 9 * 5 * 9 + 2) + 2 + 6)
3 + 9 * 3 + 7 + 6
((9 * 7 + 7) * 2 + 8) * 6
(7 + 8 + (3 + 9) + 7 * 8 + 8) + 6
(4 + 5 + 5 + 3 * 9) * 7 + 9 * 7 + 8 * 5
8 * 5 * (8 * 6 * 2 + 4 * 3)
2 + 2 * (6 + (4 + 5 * 7)) + (9 + (4 + 5 * 8 * 2) * 3 + 2)
3 + 6 * ((9 + 9 * 7 * 5) + 7 * 5 * 8 * 4 + 6) * 3 + 2
8 + ((5 * 5 + 3) + 9) + 4 + 8
8 + (9 + (2 + 4 + 3 + 4) + (8 * 5 + 9 + 4)) * (4 * (3 * 7)) + 3 * 3
9 + 4 + ((5 + 9) + 2) * 6 + ((3 + 9 + 7) * 3 + 2 * 6 + 9 * (7 + 9 + 3 + 3))
6 * (8 + 5 * 3 * 8 + 3 * 2) * 5
8 + 5 + ((7 + 2 * 3 + 7) * (9 * 5) * 3 + 2) * 3
9 + 6 * 8 * ((4 * 5 * 4 * 8 + 8) + (9 + 9 * 7 + 6 * 5) + 6 * 6) * 2 + 3
4 + 8 + (6 + 5 * 4 * 2 + 2 * 5) + ((2 * 9 + 8 + 7) + (4 * 5) + 6)
((9 * 5 * 7 + 4 * 7) + (7 * 4 + 2 + 2) + 8 * 9 * 7 * 6) * (9 * (5 * 4 * 4 + 3)) + 8 * (5 + (5 + 8 + 7) * 4 * (9 + 8 + 6) * 3) * 2 * 6
((3 + 6 + 6 + 4 + 5 * 6) + 5 * (5 * 7 + 9 * 4) + (4 + 2 * 6)) + 3 + (8 + 4 + 5 + 4 * 4 * 8) + (7 * 3 * 4)
6 + (3 * 3 + 8 + 2) + ((6 + 7 * 3) + 9 + 7 * 3 * 4 * 4) * 6 * 6
7 + (6 * 4 * 3 + 7 + 8 * 7) * 3 + 8
8 * 9 * 6 + 9 * 3 * (8 * (8 * 5 + 5) + 4 * (5 + 5) + (9 + 2 + 2 * 5 + 3 + 5))
9 + 2 * 2 + (4 * 2) + 7
3 + 3 * (3 + 2 * 2 + 3) + (9 + 6 + (6 + 3 + 9) * 6 * 4 * (3 + 4 * 8 * 7 + 9 + 5)) + 9
((2 * 8 + 8 * 4 * 3) + 4 + 7 + (5 * 5 + 8 + 6)) * 6 + 4 * ((4 * 3 * 8 + 2 * 9) * 4 * 8)
(4 + 9 + (3 * 5 * 5)) + 4 + (3 * 4 + 4 + 2 + 6) + 7 * 5 + 8
(2 * (2 + 3 + 2) + (3 * 8 + 6)) * 9 * 2 * 9 * 9 + 9
5 * (9 + 4) * 4 + (3 + 7 + 9) + 5
4 * 5 + (7 * 6 + 7 + 5) * (6 + 2) + 7 * 4
3 * 6 + 3 + (6 + 7 * 2 * 4) + (9 + (7 + 8 + 7) * 6 * 9 + 6 * (6 * 8 * 8 + 5)) + 2
5 * 2 + ((9 + 7 * 2) * (9 + 2 + 3 * 2) * 7)
((4 + 8 + 2 + 3 + 6 * 3) * 8 + (7 * 9 * 5 + 3 * 2) * (7 * 7 * 9 * 2 * 5) * 3) + 8
9 * 3 * (6 * 2 * 6 * 4 * (3 * 9) + 2) + 4
2 * (6 * 9 + (9 * 2)) * 4
9 + 7 + 7 * 7 * (7 + (9 * 9 * 2 + 4 + 9) * (3 + 4 + 2 + 9) + 6)
4 * 6 + (3 * (2 * 5 + 4 * 3 + 4) + 6 + (5 + 9 * 7) * 9 + 3) * (3 * 3 * 7 * 7) * 8 + (5 * 6 + 4)
4 + 7
((7 + 5 * 8 + 6 * 3 * 9) * 3 + (5 * 9 * 3 * 2)) + (5 * 6 * 4 * 2) * 7 * 4 + 5 * 6
(2 + 9 + 2 * 7) + 6 + 3 + 9 + 7
((6 * 5 + 2) + 4 * 7 + 4 * (7 * 4 * 2 + 4) * 7) * 3 + 4
5 + (2 * 3 + (9 * 8 * 9)) + 7 * (6 + 7 + 2)
4 * 5 * 8 + 6 * ((4 * 7) * 8 * 8 + 7 * 8 + 2)
8 + ((8 * 2 * 6) * 9 * (9 + 2 + 9 + 4 * 3 * 7) + 5) * 2 * 8 + 8
((8 + 4 * 2 + 4) * 5 * 4 + 4 + 8 + 5) * 4 * 6 + 3 + 4 * 4
6 + 7 * 6 + (6 + 6 + 2)
((4 * 9 * 9 + 8) * 6 * 9 + 6) + 2 + 8 * 8 * ((4 * 9 + 6 * 7 + 5) * 4 * 7) * 7
6 + 5 + (8 + (2 * 8 * 6 * 3) * 4) + (8 + 2) + 2
(9 * 6) + 5 * 2 * (8 + 5 + 6 + 7) * 4
9 + (8 * (2 * 4) + 6) * 8 * 4
9 + 6 + (3 + 2 * 8)
3 + 9 * 2 + 7 + 4
((7 * 9 + 3 + 3) + 5 + (4 * 7 + 9 + 4 + 2)) * 3 + ((9 * 6 * 8 + 5 + 7) + 5 + (4 + 8) + 2 * 4) + 3 * 5
6 * (9 + (4 * 7 + 9 * 7 * 6 + 9) + 6 + (4 + 7 + 3 * 4 * 6) + 4 + (5 + 2 * 5)) + ((8 + 7 * 3 + 6 * 4 * 7) * 3) + 5 + 9
((7 + 5) + 9 + 8 * 5) * 6 + 3 * 7 + 2 * 3
(9 + (5 + 8 * 9) * 9) + 3 + 6
9 + 7 * 5 * 8 * (2 + 4)
6 + 3 * 7 + (3 * 5 + 8 * 7 * (4 * 8 * 5 + 9 * 6 * 4)) * 3
5 * (4 * 2 * 5 + 6 * 7 * (3 * 9 * 9 + 4 + 2)) + 9
(5 * 7 + (8 * 4 * 4 * 4 + 5) + (9 + 9) * 5 * (3 + 6 + 7 * 9 + 6)) * 4 + 6 + 4 + ((7 * 4 + 7 + 2 + 7 + 2) * 5)
(4 * 3 + 5) + 2
(4 * 4 * (9 * 7)) + (4 * 5 * (3 + 9 * 3 * 2)) * (5 * 7 * 4 * 6)
2 + 5 * (7 + 2 + 8 + (2 * 9) + 7 + 7) + 2 + 6
((9 * 5 * 3 + 7 + 7 * 8) + (6 * 3 + 4 * 8) + 4 * 9 + 9) + 9
8 + 2 * (9 + (7 * 7 * 3) + 2) + (6 + 5 * (3 + 6 * 9) * 6 + 3)
((4 + 8 * 6 * 9 * 2 + 3) + 8 * (7 * 7 * 8 * 6) + 9) * (2 + 6 * 9) + 6 + 4
6 * 5 + 8 * 7 * (3 + 4 * 7)
7 * 5 * (5 * 7 + (2 * 7 * 6) + (6 * 3) * 9 + (4 * 7 * 6 + 7 * 7 * 3))
8 + 7 * 3 + (4 + 6 * (4 * 4 + 9 * 7) * 6 + 8 * 2) * 8 * (8 * 3 + 3 + 6)
2 + 6 + ((6 + 2 * 3 + 2 + 2 + 6) + 3 + 5 + 7)
((9 * 7) + 8 * (9 * 3 * 9 + 8) * 2 + 7 * (6 + 7 + 4 + 6 * 3)) + 7 * 4 + 7
5 + ((8 + 6) * 7 * 9 + (4 * 5 + 5) * (5 + 3) * 7) + 3
4 + ((5 + 4 * 5) + 2 * 6 + 5)
6 + 6 * 8 + (3 * 8 * 2 * (5 + 3)) + 6 + ((3 * 7) + 9 + 7 + 7 + 6 * 7)
(2 * (4 * 7) + 6 + 8 * 3 + 7) + 8 * 6 * (3 + (3 + 4) * 2 * 3 * (4 * 5 * 2 * 2 * 6)) * 8 * 4
6 + (8 * 3 + (3 + 9 * 6)) + 2 * 4
3 * (2 * 9 * 3 + 3) * 5 * 6
6 * 5 * 3 * 3 * (6 + 7 + 9 + 8)
9 + 2 * 8 * 6 + ((9 * 9) + (3 * 4 + 4 + 4 * 9 * 7) + 5 + 4 + 9 + 9)
3 + 9 * 5 * 8 * 5
5 + 3 * 7 + 9
9 * ((4 + 4 * 6 + 5) + 3) * (4 + 3)
(3 * 6 * (8 * 6 * 5) + 2 * 3 + 4) + 6 + 8
6 + (4 * 8) * 3 + 5 + 2
2 + (2 * (7 + 6) * (5 + 3 + 2) * 2 + (7 * 9)) * ((5 + 9 + 2 * 8 + 8) + 9 + 8) + 9 + 6
((5 * 8 * 4) * 6) + 4 * 4
6 * 2 * (3 + 4 + 3) * (5 * 4 * 7) * (2 + 4 * 2 + 8)
6 + 9 * (2 * 7 + (4 * 5 + 7 * 6 + 7 + 8) + 4 + 5)
((4 + 6 * 2 * 4) + 2 + 4 * 3) * 9 * 5 * 9
6 + (3 + (5 + 4 * 2 * 3) + 6) + ((8 + 4 * 8 * 5 * 4 * 4) + 5 * (6 * 6 * 9 * 9) * 3 + 3)
7 * 8 * (7 + 8 * 2 + 6) * 9
5 + 3 + 4
4 + (3 * 6)
9 * (2 * 6 * 2 + 4 * 5 + (2 + 4 + 6 + 3 * 4 * 5)) * 4 * (8 * 7 * 6)
6 * (9 * 5 * 9 * 4 + 4)
(8 * 7 + 8 * 9 + 2) + 4
6 + (7 * 6 + 8 + 2 * 3 * 8) * 8 + 4 * 2
((4 * 8 * 7 + 8) * 9) + (9 + 5) + 4 + 2
4 + 9 + (5 + 3) + 4 * (9 * (4 * 7 * 5 * 2) * 8) * 3
5 + 3 * 5 + 6 * 7 + (2 + 7 + (7 + 7 + 9 + 2 * 4 * 6) * 6 * 8 * 8)
(6 * 4 * 8) * 9 + 7 + 2
3 * (5 + 5 + 2 + 6 + 3) + 5
((2 + 6) + 3) * 7 + 3 * 8 + 2 * (7 + 4 * 4)
4 * 6 * 8 + (7 * 2 * (5 * 7) * 3 * (2 * 4 + 6 * 4 * 2)) + 2 + 9
7 + (9 * 4 * 5 * 8) * (4 * 2 + 7 * 2 * 3 * 7) * 3 * 2 * 9
4 + 6 * 8 * 4 * (2 * 8) + 4
4 * (8 + (9 + 3) * 4) + 2
(6 + 7 * 5 + (8 * 4 * 5 + 7 + 8 * 8) + 9) + (4 + (6 * 8 * 6 * 3 + 9) + 4 + 2) + ((9 + 4 + 8 * 7 * 9 + 2) * 2 + 2 * 2 * (2 * 6 + 9)) + 6
8 + ((5 * 5 + 3 + 2 + 5 * 6) * 6 * (2 + 9 + 8) + 5 + (7 + 6 + 4) + 9)
(4 * 5 * 9 + 8 + 8 * 5) * 2 * (7 * 9 * 3 + 3) + (2 + 5 * 5 * 3 + 4) + 5 + 7
(2 + 8 + (5 + 7 + 2 * 9)) * ((8 + 6 + 8 * 2 * 3 + 4) * 3) * 2 * 9
((2 + 7 + 6) + 2 * (3 + 6 * 6 * 5 * 2 * 7) * 3 + 8) + 3 + 7 * 6
5 * 5 + 7 + 3 + 6 * 2
4 + 9 * (9 + 6 + 6) * 7 * 9 * 8
((8 + 5 * 8 * 4) * 5) * (8 * 7 * (4 + 5 + 4 + 3 * 3))
(9 * (8 * 9 + 9 * 6 + 5 * 8) + 3 * 9 * (5 + 6 + 6 * 4 * 4 * 6)) + 4 * 6 + 8
6 + (9 * 8 * (8 * 3 * 3 * 7))
(7 + 7 + 6 + 8 * 3 + 9) * 4 + 9
7 + 2 + 3 + (8 + 5 + (7 * 7 + 8) * 9 + 7) * (2 + 5 * (4 * 8 + 2 * 5 * 7) * 3 * 9)
((3 + 7 + 4 + 9) + 5 + 6 * 3 + 3 * 8) * 2 * ((9 + 5 * 9 * 5) * 3 + (3 * 5 * 7 * 2)) * 9 * 5
6 + 4 * 9 + (3 + (5 * 3 + 5) * (3 * 8 * 2 * 5)) + (4 + 9 * 4 * 8 * 7 * 4) + 2
9 + (6 * 8 * 4 * (7 + 4 * 5 * 3 + 5 * 5) + (2 * 7 * 7 * 8))
(8 + (9 + 8 * 6 + 2) * 7 * (6 + 2 * 6 + 6 + 4 + 7) * 9) * 5 + 3
4 * 4 * (2 + 8 + (4 + 5 * 4)) * (6 * (2 * 3 + 7) * 7 + 9 + 8) + 3 * 3
4 * ((9 + 7) * (7 + 2 + 5 + 2 * 4 * 2) * (3 * 7 * 6 + 5 + 9 + 2) * (6 + 9 * 2 * 5 * 8 + 6) + 5 + 8)
(6 * 5 + 9 + 6) + 2
2 + 2 * 5 * (3 * 9 + 2 * (6 * 5)) * 8 + (7 + 6)
2 + (2 + 5 * 9 + (5 + 3 + 8 * 2 + 2) * 4) * (8 * 2 * 2 + 3 + 5 + 8) * 4 + 3
4 * 9 + (7 * 6 + 2 * (6 + 2 + 9) + 2 * 3)
(5 * 2) * (4 + (9 * 9 + 9) * 9 + 6 + 6) * (6 * 8 * 7 + 7) + 9 + 3 + 2
(4 + 2 * 2 * 8 + (3 + 7) * 7) * 8 * 9
(3 + (8 * 2 + 6) + 5) * 9
2 + 2 * 4 + (7 + 3 * 9) * 5 * 6
7 + (4 + 8 * (3 * 7 * 3 + 9) * 9) + 2 * (4 + 8) + 5
2 * 5 + (4 * 9) * 7 + 5
7 * 3 * (8 + 2 * (9 * 6) * 8 + 6 * 9) * 9
9 * (9 + 6 * 2 * (9 + 4 + 8) + 4 * (5 * 8 * 4 + 6 * 6 * 9))
3 + 7 + ((9 * 6 + 2 * 9 + 6) + 3 + 2)
(3 + (7 + 4 * 3 + 6 + 7) + (5 * 3) * 8 + 7 + 5) * 2
(8 * 5) * 8 * 3
9 * 2 + 9 * 9 * ((3 + 8 + 6 + 5) + 5 + 2 * 2) * 2
(5 * 4 + (7 * 8 * 2 * 5 * 5 + 2) * 3) * 2 * 7 * (7 * (4 * 8 + 8 + 4 * 6))
7 + 3 * (8 + 7 + 2 + 4 + (2 * 7 + 3 + 9) * 5)
4 + 5 + 4 + 5
8 + 6 * (3 + 8 * 2 * 7 * 9 + 4) + 8
(9 * 3 * 9 * (3 + 2 + 7 + 5)) + 4
4 + 4 + (4 * 4) + 3
6 + 3 * (3 + 3) + 7 * 2 + (8 * 8 + 7 + 8 + 4 * 4)
4 + 9 * 6 + (2 * 9) * 3 + 6
4 + 8 + 8 + 2 * ((2 * 7 * 7 + 8 + 4 * 3) * 3 + 8 * 9 * 4)
(2 * 6 + 7 + (2 * 4 * 5 * 2 * 6) + 7 + (6 * 3 + 3 + 7 * 8)) * 8 + 3 * 8
3 * 7 * 3 * 5
((4 * 9 * 5 + 3 + 4) * 4) * 7 + 3 + 5
9 * (2 + 5) + 2
3 * 3 * (8 * 7 + (2 * 9 + 4 + 2 * 9 * 6) + 9) * 2 + 5 + (5 * 8)
7 + ((3 + 2) * 5 + 6 * 3 + 4 + 5) + (4 * 5 * 9 * 7) + 4
4 + 4 + 7 + 7 * (3 * 9 + 2 + 4 + 2 * 6) + (6 + 8 * 6 + 9)
4 * 2 * (4 * 3 * (7 + 2 * 6)) * (6 * (2 + 5 + 7) + 8) + 2
(3 + 7) * (9 * 7 + 8 + 2) * (8 * 9 + (7 * 7 + 6 * 2 * 6) + (7 + 7 * 6)) + 9 * 7 + 2
5 + 9 * ((9 * 2 + 5 + 8) + 7 * 7 + 5) + ((3 + 2 * 8 + 8 * 6 + 8) + 4 * 2 * 3 + 9) + (3 * 2 + (6 * 3 + 3 + 6 * 5 * 7) + (2 * 3 * 5 * 9))
(8 * 9 + 9 + 3 + 3 * 6) * 8 * 8 * 4
(3 + 4 + 6) + 8 + 4
(4 + 2 + (6 + 2 + 4)) + 7 + 2
(3 * 3 + 5 + 5 * 2) + 9 * ((5 * 9) + (9 + 7 + 2 * 9 + 4 * 9) + 3) * ((3 * 2 + 3 * 7 * 6) * (7 * 3 * 4 * 6 + 3)) + 6
2 * (2 + 9 * 7) + 2 * 8 * 4 * 7
2 + 6 * (2 * 9 + (4 + 2 + 4 * 5 + 6 + 6) + (5 * 5 * 8) + (8 + 3 + 7 * 8)) * 5 + 9
(8 + 3 + (6 + 7 + 4 * 9 * 9 + 3)) * 8 * 2 + (5 * 6 + 6 + 6 * 5 + 4)
(5 * 5 + 2 * 8 * 5) + (8 * 5 * (9 * 3 * 8 * 9)) * 6 + 5 + 4 + 4
8 + 4 + (2 * 2 * (8 + 2 * 8 + 2 * 9)) + 6 + 3
3 * 9 * (8 + (7 + 3 + 4 + 5 * 7) + (7 * 5 + 9)) * ((6 * 7 * 6 + 8 + 5) * 6 + (7 + 4) * 5 + (6 + 6 + 3 + 8 + 5) + 2) + ((2 * 7 + 9 * 5 + 3) * (8 * 6 * 2 * 3) + 6 * 9 + 4 + 5) + (6 * 5)
4 + 4 * 2 + (9 + 3 * (5 * 6 * 4 * 5 + 4))
6 + 2 * 6 + 7 + 9 * (8 * 4)
(3 + (5 + 4 * 4 + 8 + 4 + 5) + 8 + 8 + 3 * 8) + 9
3 * (7 + 4 * (7 + 2 + 6)) * 5
6 * (5 * 3 * (7 * 3 * 7 + 9 * 5 * 8))
4 + 7 * 6 + 5 + 6 * 7
(7 + 9 * (4 * 3 + 2 + 3 * 4 * 6) * 2) * 6 * (5 + 8)
3 + ((9 * 6 + 6 * 4) + (9 * 9 + 9 + 7 * 3) + 3 * 8) * 7
(9 * 2 + 2) * (3 + 9 * 3 * 5 * 7)
5 + 2 + 9 + (6 * (6 + 4 * 4 + 9) + (8 * 4 + 5 * 3 * 9)) + 9 * 5
8 + (4 + 9 * (7 + 3 * 6 * 5 + 9 + 7) + (3 * 6)) + 5 * 6 + 6
(7 * (8 + 3 * 3 + 7)) * 9 * (6 + 9) + 3
5 * ((6 + 7 + 9 + 3 * 2 + 3) + (3 + 5 * 5 + 3 + 9)) + 3 * 7 + 6 + (7 + 4 + (3 * 3) * 5)
8 + 6 + ((9 + 8 + 3 * 6 * 9) * 3) * 8 + 7 * 9
7 + (8 + 3 * 6 * 8 * 8 * 3) * 5 * ((3 * 6 * 2 * 7 * 7 + 4) * 5)
(2 + 2 * (3 + 6) * (8 + 5) + (8 * 6 + 7) * 9) + 6 + 8 * 9
7 + 7 + (4 + 2 + 4 + 6 * 5 + (8 * 6)) * 9
7 * 3 + 7 + ((9 + 7) + 6 * (5 + 9 * 8 + 6 + 5 * 4) * 8 * 3 + 3)
(2 + (2 + 9 + 2)) + 2 + 8
2 + 2 * (5 * (8 * 4 * 7 + 3 * 5) + 6) * ((9 + 3 * 2 + 5 + 8) * 2 * 9 + 2) * (3 + 9 + 4 * 5)
7 * 8 * 2 * 8 * 9 + (4 + (5 * 6 * 8 * 9 + 7))
6 + 2 + 7 * (6 + 7 + 6 * 8 + 9) * 3
6 + 6 * 7 * (4 * 9 * 9 + 7 + 4 + 9) + 9
(9 * 9 + 6 * 6 + 3) * 3 * 2 + (3 * 8 + 8 + 4)
9 + 6 + (9 + 3 + (7 + 5 + 2 + 3))
5 * 4 + (2 + 2)
((7 + 7 * 6 + 2) + 7) + 8 * 7
6 + (5 * 2) * 9 + 8 + 7 + 8
9 * 8 + 3 * (4 + 8 + 8 + 5 + 9)
4 * (2 * 8 + 8 + (5 + 5 * 3 * 5 + 2) + 9 * (8 * 6 + 2 + 2)) + 9 * (6 + 6 * 3 + 8) * 4 + 7
(3 * 6 + (4 * 9 * 2 * 4 * 8)) + (3 * 5 + 7) + ((9 * 5 + 5 * 2) + 9 + 8 * 7 + 3)
5 + (3 + 9 + 6 + 2 + (6 + 4 * 2))
(9 * 5 * (9 * 9) + 8 * 7) + 2 * 7 * 3 + 3
(9 * 5 + 6 * 7 + 4) * ((3 * 2 * 9 * 4 + 4 + 6) + 2 * 4 + 4 + 9 * 7) * 2 + (8 + 8 * 6 * 8)
6 + ((5 * 9) * 4 * 5 + (4 * 3 * 7) * (5 + 3 * 3 * 8 + 4 * 4)) + (5 + (6 + 3) * 2 + 8 * 2 + 3) + 3 * 3
8 + (3 * 8 + 5 + 6 + (3 + 4) + 8) * 2
9 + 2
(8 + 2) * 2 * 2 + ((9 * 9 * 4 * 5 * 5 * 3) * 2) + (4 * 3 * 8 + 9 + (8 * 3 * 7 + 4 * 8 * 5))
6 * 7 + (8 * 5 * 8 * 7 + 7) * 9 + 3 * 7
3 * 5 * 7 + 8
(3 + 2 + (8 + 9 * 9 + 6 * 8 + 6) * 3 * 6 + 6) + 4
3 + 8 + 4 * (4 + 7) * (5 + (3 + 9 + 6) * 7)
((4 + 5 * 8 * 5) * 8 * 5) * (2 * 4 * 9 * 4) * 6
(8 + 3 * 5) * 2 + 2 * 4 * 8 * 6
8 * 7 * (4 * 7 + (4 * 3 * 4 + 3 * 7) + 2 * (6 * 6 + 6 + 4 + 7 + 2))
6 + 9 * 5 + 4
5 * 6 * 8 * ((6 + 9 * 2 * 8 + 5 + 8) + 3 + 6)
4 * ((4 + 7 * 9 + 9 + 3) * (2 * 4) * 6 + (5 + 9 + 7) + 5) * (8 + 2 + 8 * 5 + (6 + 7 * 7 * 6)) * 2 + (7 * 8)
(7 * 3 + 4 * (9 + 2 + 6 + 6 * 4 + 2) * 4) * 6 * 2 * 2
3 * (4 * 8 * 3 + 8 * 6 * 2)
(3 * 3 + 8 * 4 * 4 + (6 + 3)) * 2 * 7 + 5 + 2 * 4
9 * 3 * (4 * 7 * 9 * (2 * 4 + 9 * 2) * 2) * 7
5 + (4 * (6 + 5 * 9 + 6 * 7 * 3) + (7 + 2 + 2 * 9 + 2 + 2) * 3) * 4 * 6 + 2
7 * (6 * 6 * 7 * 2 + 8 + 8) + 7 + 8 + 7 * (9 + 3 + 4 * 4 + 4 * 8)
8 + 2 * (4 + (2 * 3 * 8 * 4 * 3))
6 * (6 * 4 + (5 * 7 * 8 * 2 + 4 * 9) * 2) * 9 + 3 + (3 + 7 * 5 + 3)
3 * 7 * 5
7 + (2 * 5 + 5)
6 * (5 * 9 + 5) * (8 + 7) * ((8 * 8 + 4 + 5) * (2 * 2 * 7 + 4 + 2) + 5) * 3 * 3
4 * 2 * 2 + ((4 * 7 * 8 + 9 + 2) + 6 * 4 + 3) * (4 + 3 + 3 * 9 * (8 + 6 * 8 + 3 + 9) * 3) * 8
8 * 9 * 8 + (9 * 7 * 2 + 7) + 4 * (6 + (8 + 3 + 5) * 5 * 3 + 6 * 9)
((4 + 4 + 5 * 8 + 9 * 4) * 8 * 9 + 6 * 9 * 8) + 4 + ((9 * 2 * 7 + 5 + 3 + 6) + 3 * 4) * 8
4 * (3 + 4 + 8 * 6 + 8 * 7) + 3 * 9 * 8 * 8
(4 + 8) + ((7 + 3 * 9) * 5 * 8 * 4)
3 * 9 + ((5 + 4 + 8 + 9) + 5 + 5 + 8 + 5)
8 * (9 * 3 * (9 * 8 + 6 + 3) * 8 + 6)
(5 + (3 * 7 + 6 + 9 * 7) + 8) + 2 * 3 * 7 + 2
8 + 3 + 8 + ((3 + 6 + 8 + 2) + (4 * 9 * 7 + 5) + 6 * 2)
(7 + 5 + 6 + (6 * 9 + 8 + 8 + 2 + 5) * 4 * (9 * 4 * 8)) + (8 + 5 * 3 * (2 + 8) + 7) + 8
2 + (3 + (6 + 9 + 9 * 5 + 2) + 9)
((4 * 9 + 4 + 7) + 6) * 5
2 * 3 + (7 + 5 + 9 + (9 + 9 + 8 + 5 * 8 * 7))
7 * (4 + 4 * 7) * 4 + 2
3 * (4 * 6) * 2 + 4
2 * ((5 * 8 * 8 * 4) + 8 * 6 * 3 * 3)
6 + (2 * (8 + 4) * 3 + 8 * 4) + ((3 * 9 + 6 * 4 * 8 + 3) + 9 * 9 + 3 + 3 + 2) * 4 + 6
3 + 6 * 6 + (6 + 9 + 7 + 2) + 9
(5 * 5 * (2 + 2 + 9 + 8)) + 7
(5 * 7 * 6 + 9) * (6 + 4 + 9 + 6 * (8 * 2 * 2 + 5 * 9) + 6)
9 * 7 + (2 * 2 * 8 + 9 * 7 * (8 + 4 * 8 + 4)) + (8 + 6 + 6)
6 + ((3 + 9 * 4 + 7) * 3 * 8 + 4 + (3 + 3 * 6 + 6 + 8 * 5)) * 8 * 8 * 3 + 3
5 + 3 + 6 + (2 + 3 * 9 + 2 * 8 * 8) + (6 * 6 * 5 * 6 + 6)
(6 + 2 * 8 * 6 * 7) * 6 + 6 + 6
(3 + (6 + 9 + 3 + 3 * 4) * 8 + 6 + 7 * 8) + (2 + 8 + 9 * 9 * 7) + 4
2 + 7 + 2 + 3 + ((4 * 5 + 4 * 3 * 3 + 7) * 4 + 8 + 9 + (2 + 7 + 2 * 5 + 3) + 9) * 6
(7 * (6 * 5 + 2 * 6 * 2)) + 9 + 6 + ((8 + 4) * 5 * 3 + 5 * 8) * ((5 * 5) + (8 + 4 * 5) * 8 + 4 + 2)
((4 * 6 + 2 * 5 + 8) * 9 * 3) + 3 + 5 + 3
5 * 5 + (2 * 9 * 9 * 6) + 3 * 8
3 + 7 * 2
9 * (5 + 6 + 2 + (8 * 8 + 9 + 8 + 4 * 6))
(9 + 2 * 7 * 2 + 5) + (4 + 6 * 3) + ((6 * 4 + 4 * 2 + 5) + 8 + 6 * 6)
3 + (7 * (2 + 5 * 5 * 4 * 4 + 7) * 4 * 4)
8 + 3 * ((3 * 7 * 3 + 4 * 5) * (6 + 8 + 9 * 7 + 6) * 9 + 5 * (5 + 4 + 4 + 4))
-536
View File
@@ -1,536 +0,0 @@
107: 18 | 47
116: 1 18 | 111 47
21: 45 47 | 110 18
20: 2 47 | 76 18
44: 47 47 | 18 107
2: 47 18 | 107 47
113: 51 47 | 35 18
80: 18 22 | 47 44
110: 18 18 | 47 107
1: 22 18 | 112 47
77: 47 7 | 18 113
16: 121 47 | 2 18
66: 91 18 | 58 47
86: 12 18 | 78 47
72: 18 76 | 47 121
46: 47 68 | 18 82
131: 66 18 | 75 47
108: 84 18 | 24 47
27: 22 47 | 110 18
53: 108 18 | 122 47
90: 77 47 | 37 18
6: 18 29 | 47 52
10: 76 18 | 44 47
43: 47 39 | 18 130
106: 18 112 | 47 110
89: 97 47 | 51 18
84: 112 18
91: 74 47 | 110 18
114: 18 47 | 107 18
105: 26 18 | 118 47
18: "b"
19: 2 47 | 22 18
15: 34 47 | 2 18
111: 110 47 | 22 18
94: 47 95 | 18 57
34: 107 107
60: 47 114 | 18 121
62: 44 47 | 45 18
50: 38 47 | 103 18
61: 18 44 | 47 110
87: 112 107
8: 42
31: 18 49 | 47 25
57: 18 20 | 47 60
103: 18 67 | 47 40
39: 18 45 | 47 22
128: 112 18 | 13 47
5: 45 47 | 44 18
13: 18 18
3: 47 10 | 18 80
11: 42 31
124: 22 18
88: 18 18 | 47 18
54: 32 18 | 129 47
63: 81 18 | 86 47
49: 18 132 | 47 105
102: 10 18 | 120 47
93: 18 44 | 47 34
65: 107 2
132: 83 47 | 14 18
125: 18 43 | 47 71
109: 47 22 | 18 76
117: 18 112 | 47 22
59: 47 22 | 18 13
75: 18 109 | 47 27
4: 47 90 | 18 69
48: 18 65 | 47 115
24: 18 2 | 47 44
42: 47 50 | 18 4
96: 106 47 | 16 18
101: 111 47 | 91 18
58: 47 76 | 18 73
79: 47 73 | 18 22
12: 47 34 | 18 88
25: 33 47 | 55 18
130: 18 114 | 47 44
83: 126 18 | 102 47
45: 47 18
9: 41 18 | 62 47
78: 112 18 | 45 47
14: 3 47 | 85 18
97: 47 45 | 18 22
22: 18 47
41: 18 22 | 47 112
112: 18 47 | 18 18
68: 21 18 | 19 47
121: 47 47 | 18 18
119: 22 47
129: 47 5 | 18 39
30: 73 18 | 2 47
98: 34 18 | 45 47
40: 18 70 | 47 9
7: 64 47 | 79 18
115: 121 47 | 44 18
32: 19 47 | 30 18
73: 18 47 | 47 18
35: 18 76 | 47 45
95: 93 18 | 72 47
52: 28 47 | 124 18
126: 59 18 | 92 47
26: 104 18 | 89 47
81: 47 98 | 18 127
0: 8 11
64: 112 47
71: 47 119 | 18 117
74: 47 47
82: 47 120 | 18 17
56: 74 47 | 88 18
123: 88 47 | 76 18
33: 6 18 | 63 47
104: 80 18 | 128 47
99: 98 18 | 23 47
38: 94 18 | 53 47
36: 47 110 | 18 74
37: 47 48 | 18 101
70: 61 47 | 87 18
55: 47 54 | 18 131
23: 2 47 | 112 18
122: 10 47 | 64 18
120: 88 18 | 112 47
28: 18 112 | 47 73
51: 47 74 | 18 110
17: 47 88 | 18 22
127: 18 73 | 47 45
69: 125 18 | 46 47
92: 2 47 | 114 18
29: 117 18 | 56 47
67: 18 96 | 47 116
85: 18 36 | 47 15
100: 18 123 | 47 12
47: "a"
118: 100 47 | 99 18
76: 47 47 | 47 18
bbbbbbbbbaaaabbaababbabbaaabbbabbbbaaabb
babaabbaabbbbaababbaabbabaababba
baabbaaabbabbbbaaabababb
bbbbababbaabbbabbabaaaaaaabbbbbbabbabbbaabbbbbbbbbaaaaab
bbbbbabbbbbbaaabbaaaaaba
baabbabbbaabbbabbaabbabbababaaab
bbabbbbaabbabaaababbbbbbbbbabaab
aaababbaabbaaabbbbbbbabbbaaaabbaabbabbabaababbaa
aabbbabbaaaaaaabbbabbaba
baabaaaabbbababbbbaabbbb
bbbbabababbbbabbbbbbbbba
babbaababbbbababaabaababbbabbbbbaabaaabb
baabbbabaabbabbbaaaaabba
baabbabbbbaabbbabbbaaabb
aaaaabbaababaabaabbabbbbbabbabaabbaaabbb
babbaabaaabbbbbbbbbbbabbaabbaaabbaaaaabbabbaabaabaaabbbaaabaaabb
aaabaaabbaaaaabbabaaaaababbabaaababbaabaabbaaaabaaaabaaaaaaabbaaababbbbb
baaababbbaabaaaaaaaaaaaabbababaababaaaaabaaabaaa
abaaaaabbbaababababaaaba
abbaabbabaaabbabaaaaaabaababbabbbbbbabbaabaabbbb
baabbabaaaaabbabbaaaaaabaababaab
abbaabbabbaabaaaabbaaabbabbaaababaaaaaaa
abaaaaabbbbaabbabbbbbbaaaaaaababbbbbbaaa
aabbaaabaaaaaabababaabab
bbbabbaaaaabaaaaaabbbbaa
abbaaababbaaaabbaabaaabbbaaaabbbbbbbaaaaabbbbabaabaabbab
aaaaaaaaaababbabbbabbaba
abbaaaaabbbabbbaabbaaabbabbbbaabbabbabbbabaababbbbabaaba
babaaaaabaabbaaabbaabaaababababa
bababaabbaaaabbabbbabbbabaabbaaaabbaaababbbbbbaaaaababaa
aabaabbababbbabaaaaaaaabababaaaababbabaabbaaaaabbbbbbaab
baaabbbbaaabbaabaaaaabaaababbaabaaababbabaababbb
abaabbbaaabbabbabaaababbbbabbaaaabaaaabb
abbaababbaaaaabbbbaaabbb
aabbabbabbaaaaaabbbaaabb
baabbbabbabbaababbabbbbabaabbbabbbbabbbaabbabbaababbbbbaabbababbaababaab
abbaabaabaaabbbbbaaabbabababbabbbaabbabbaaabbaaababbbababbbbbaaa
aabbbaabbbbababbbabaabaa
baabbaaaabbbaababaabbabbabbbbbaabababaaabaabbbbaaababbbb
abbabababbbbbabbababbbaaaaaaabbbaabababb
baaabbabbbbaababbbaaaabb
aabaaaaaaaaaaabbbabbbabbaaabbbab
abbaabbababbbbaabaaaabbaababbabbaaabbbbabbbaaabbbbaaaabb
baaabbabbbaabaabbbabbaba
abbbbbaaabababbbbbbabbbb
aaabbabbbbaabbbabbaaabbb
babbbbaaabaaabbaabaaaaabbabbaaab
aaabbabaabbaababaabbbbbbbabaaaba
baaaaabbababbbbabbbbabbbababaaaa
abbaaaabaabbbaabbabbbbab
bbbaabbaabaaaaaaababbbbaabbaaaaabbaaabbabbabbbaa
baabbbabaabaabbaababbabbbbaaaaaaaabbbaabbbabbbaa
babaabbabbbbaabaabababbbaabaababbbbaabbb
aabbbabbbaaaaaababbaaaaaaabbaaabbabbabbaaabbaaba
aaabababababbbabbbaabaabaaababbaabbbaabbbbaaaaba
aaabaaababbaababbbbabbab
baaabbabbaabaaabaaaababbabbbabba
abbbabaaaabbbaaaabaabbabbbaabbbbaaabaabb
abbbbabbabbaababbbbbbbaabaaabbbbabaabababbbaaaabaabbaaba
baabbababbbabaaaaabbbaab
aaaabbaabbaabbbbaabbaaaabbabbabaabaaababbaabaabababbaabbbabbbaabaabbbabbbabaaabb
abaaaaabbabbaaaabbabbbaa
baaabbbbababbbaaaababbabbabbaababbabbbabbbbbaaaa
aaaababbabaaaaabbbaabaabbababbbbaabbaaabbbbaaabbbabbbaaaababbaba
abbaaabbbbbbaaabaaaaaababbbbbaaa
aaaaabbababbaabaabaaaaaababbbaabaaaabbaa
bababaabbbbbaaababbaaaaaaabbbbabaaaaabbbaabbbaaa
bbaabbaaaabaaabbaabbaaaabbabaaaabaabbbab
aabbaaabbaabaaaaaaaababbbabaabbaaaababbb
abbbaabaabbaabbbaaaababa
abbaaabbaabaaaabaababbbb
baabababbbbaaabaaabbabababbbabba
abaaabbaaaabbabaabbaaabbaaaaaaaaabbbaababaababbaaabaaaaaabbbabaa
abbbbbabaabbaaabaaaaaabb
abbaabbaabbbbaabbbaabaababbbbbaaababbbbb
aaabbababaaabbabbbaaabbb
baaababaababaabbbbbaabaa
bbbaababbbaaabbaaaaabbabbabbbbab
bbaabaaaaaababbabbaaaaab
aaabaaabbabbabbabbaaaaba
babbabababbbbabbaabbbaba
ababaabbbaabbaababbaabababbbabbbabbbbaabbababaaababbbabbbbbabbbb
abbbbabbaababbababbbbbaaabababbbaabaaababbbaaabb
babaabbbababaabaabaaabbbbaabbbaa
bbbbabbbbbababaabbbbaaabbaabababbbbbabaabaaaaaaa
aabbabaaaaabaaabaaaaabab
abababaaabbabaaabbaaabbababbbbaaaaaababbbabbbaaa
abbaaaaabbabbbbaaabaabbabbaabaababbaaabaaababaaa
aabbbabbababaabbababaabbaaabbbab
baaaaabbbbbbbbaaabbbbbabaabaababaaaabaab
abaaaaaaaaabbababbabababaabbbabbbbaabbababbbaaab
baabaaaaabbaaaabbbbabaaabbababababbbbbba
baabaaababababaaaabbabaaaabaabababaaaabb
bbaaabbaaaabaaababbbbabbaababaaa
babaabbaabbbbaabbbaaabbabbaabbbbbabbbaaa
bbaaaaaaabbaaaaaababbaaaababbbabbbbaaaabbaabababababbabbbbbbaabbaaababbbbbbbbbab
aabaababbabbaaaaabaaaaabbababbaa
aaabbaabaabaabaabbbaababaabaabaabbaabaabbaaabbaa
abaaabbabbbabbaabbbbbabbabaababbababbaaa
bbabaaaaaababababbababba
aaabbabbbabbbbbbabbaabbbbbbaababbaabaaabababbbbbabbabbaa
aabbbbabbabbabaabababbaa
aabaaabaaaabaaaabbabbbbaaaabbbbb
aaaabbabbbabbbbbbaaababaaaaabbabaaaaabab
baabbbabaaabbabbbbababba
bbbabbbaabbaabaabbabababbbbababbabaaabbababbabbbabbbaaaabbaaababbaababaa
abbaabbbbaaabbabbaaaaaaa
aabaaabaaaaaaaaaaaaaaabb
babbaaaabbabaaaaaaaaabbaabbbbaabbbabbbbbbbbaaaaa
aabbaabbbaaaaabbabbbbbba
baaaaabbaaabaaaaabaabbaa
bbaabaabbaabbbabbabbbaabbbabbbaababaabab
aaabbabababaabbabaaababaaaabbabbbbabbaabbabbbbba
bbaaabbabaaababbabaaaaaabaabbbaa
bbbbbabbabbbbbabbbbababa
abaabbbabaabbabababaabaa
babbabaaaaaababbbaaaaabbababbabbbbbbbabbbbbbabaa
aaaababbabbbbbaabbbbaaabbaaabbbbaabbbbbababbaabababbbaaa
babaaaaaabbbabbbaabaabbabaaabbbbbabababbbaabbbaabbaabbaa
ababbaabbbbbbabbbabaaabbabaabaabbababbbbabbbbaab
abaaaaaaaaaaaabaabbbbaabbababbbbbaaabbaa
bbbaabbabbbabbaaaaabbabbbaaaabbaaabaabbb
aaaaaaabaaabaaabaabbaaabbbabbbabaaaabaaababbbaaa
aabbbbababbaaababababaabaababbba
bbabbbbbbabaabbbbabbababaaaaabaabbaaabaabbbabbabababbaaa
babaabbaabbabbabbabbabaaabbabaab
bbbabbbaabbaaabbaabaaabaaababbaa
abbbabbbababababbaaabbab
abbaaaaababbababaaaaaabaaabaaabb
aaaaaabaabbaaabaaabaabbabbabbaab
aabababaaabaaababaabaabbaababaabbaabaaba
bbababaabaabababaabaaaabbaaabaab
aabbbbabbaaabababbabaabb
bbbbbbaaaabbbbabbabaaaababbbbbba
ababbbbabaabaaaaababbbbaabbaaaabbbabbaaa
abbaaabbaabbaabbaaaababbbaabaabbaabbbbbabababaaabbaaababbbabaaab
aaaaaaabbaaaaabbabaabaabbbbbbbabbbbbaaaabbbabbbb
babbabbaaaaaaaaabbbaaabb
aaabaaaaaaaaaabaabbabaaabaaababbbbbabaaaabbbaaba
aabbaaabbaabbabbbbabbaaa
aabbbaabaabbbbbaabbaaababbaabbbabbbabbbb
bbbabbbabbababababababbbabbababb
aaaaaaabaabbabaaababbbbb
bbabababbbbabbaabaaabbababbaaaaabbaaabaa
bbabbbbaaabbaabbabaabbaa
aaabbaabaabaabbaabbaababaabbbaabaabaabbababbabababaaabbbbbabaababaaaababbbbbbbbabababbba
abababaaabbaabbabbbbaaaa
abaabbbaaabbbabaabababbbabaaaaabbaaaaabaaabbabbbbaaaaaabbabbabab
baabababaabbaabbbbababba
abbaaabbabbaabaabbabbaab
baabbaababaabaababaaabab
abaabaaaaaababbabbabbaba
baaabbbbbbbbbbababaabbab
babaaabbaabaabbaabbabababababbba
aaababbaaabaabaabbbabbbababbbaabaabbbaaa
aabbaaaaababbbbaababbaaa
babaaaabbbabbbbababbbabb
bbbaabbabbbaabbabbabbbaa
babaaaaaabbaabbabbaabaabbbbbbabbbbaaabbabababaaaaaabbbbb
babbaaaabbbbababbaabbbabbaaabaabbaabbbba
bbbbbbaabaaababaababbaabababbbab
abbabbbbaabbbbaaabbbaabbbbabbabb
bbbabaaaaabbaaabbabababb
abbaabababbbbaababbabbabbabbaaaaaaaaabaaaaaabaab
aabbabaabbababaaaaabbababbaabaaabaaaaaaa
bbbbaabbbbbababaabbbabaaaabababb
baabbabbaabaaabaaabaaabababaabab
baabaaaaaabbaaabbbabababbabbbbbbbbbbaaaa
aaaaaaababaabbbabbaabbbaaaaabaababbbaaababbbaabaabbbbbbbababbababaabbaab
abbabbbbbbbbbabbababaaaa
babbbaabaabbbbabbaabbaabbbbabbaabbabbaab
ababaabbbbaabaabaaabbabbbaaaaaaa
baaaaaabaabbaaababbbbabbabaaababbbaaaaba
bbbbabbaaabbbaabbaaaabab
ababbbaaabbabbabbbbabbab
abababaaaaabbabbbbabaaba
aaaaabbabbabbbababbbabba
aabbbbbabbabababaabbaaabaaaaabbbbbbaaaab
bbbabaaabbbabbbaaaabbababbbbbaba
aaabaaababbbaababaabbbaa
aaaababbbbbbbbabaabbaabbabbbabbbbababaaabbbaabbbbabbbbab
aabaabbabaabababbabaabbaaaaaabab
abbaabababaabaaababbbbaaaabbaaba
bbabababbaabaabbababbaaa
babaaaabbaabababbbbaabbaaaabaaabbababbaaaaaabbaabbbaaaaa
bbbabbbababbbbbbbaaaabaa
bbbbabbaababbbaabbabbbbabbabaaaaaabaababababaababbaababbbbbbaaaa
baabbbbaaaabbbabababbaba
aabbbbabbbbbababbbababbbababbaaaabbbbaaa
aabbaaabbbabababbbbabbbabaabbaaababbaaababababba
baabaabbbaabaaababbbbaabbaaaaababababbbabaaabbbbbaababababaaaaaa
bababbbbaabaaaababbaaabbbabaabab
babaabbbaaaabbbaaaaabbbbabbbaaaabbabbaba
abaaaaabbbbabbaabbbbbbabaaabaabb
ababaababbaabaabababbaba
baabaaaabaabbabbbbabaaaababbaaab
aaaabbbabbbbbbabbbabbabb
bbbbbbabbabbaaaaabaaabbabaaababbaabbbaaa
bbbbbabbbbbaababbabababb
aaabbaababababaababaaabbabaaabbb
baabaabbaaaaabbabaabaaaaabaaabab
bbbbbbababbbbaababbabbabbbbaabaa
abaabbabbabaababbbbbbbbabbbbbbaaabbbaabaabbbbbbbbbbbaaab
abaabababaabbabbbbbbabbabaaabaab
bbabbbababbaabbaababbbbaabbaabbbbbaabaabbabaababbbababbbbaababaa
abbaaaaaaaaabbbaabbabaaaabbaaaaaababbabaaaaabaabaabababb
aaaaabbaaaabbbbaaaabbbbaaaababbababbbaabbaababbababaaabaaabaaabbbbaaaaab
aabaabbaaabaaabaaabababb
aaabbabbabaaaaabbbbbababaaaabaaa
baababababbbbabbabbabaaaaabaaabbaaababbb
ababbbbaabbaabbaabbbbaaa
aaaabbabbbabaaaaaabaabbb
bbbbabbaaaaaabbabbbababa
aaaaaabbbabaaababaaabbaaabaabbbabaaababbbbabaabaaababaabaaaaaaaaabbbaaaababaabaa
baabbbababbbbbaabaabaaaaaaabaabb
abbabbabbbbbabbbaaaaabbabaaabbaa
baabaaababaabaabbaabbabbaaaaaaababbabaaaaababbba
baaabbabaaaaabaaabbabbbaaababbba
aabbaaababaabaaababbaabaaababbabbabbbbabbbaaaabb
baabbaaabaabbaababbbbaba
aaaaabaabbaaabbaaabaaaabbaabbaaaaabaaabb
bbaababaabaaabbababababb
bbabbabbbbaaaaaaaaaabaabbbaaabaabbabbabbbbbbabbbabbbaaaabaababbbbabbbbabababbaab
aaabbbbabaabaaaaaaabbbab
baabbbabbbbabbaaabaaabab
bbaaabbabaabababaabbabbabbaaabaa
ababbbaaababaabbbabaaaabbababbbbbaaaaaba
baabbaaaabaababaaabababb
aababbabbbababababbbbbaabaabbaaaaaaabaaabbaaaaba
aaaaaaabbaabaaaaababababbabbaaabaaabaaba
abbaabbbaabbbabbaaabbaaa
baabbaabbbbababbbaaaaabbbbabbabb
aaaaabbababbaaaaabaaabbaabaabbbabaababaa
aabbabbbbbbbabbbbbbbbbba
abababbbaaaaaaabaabbabbaabbbbaaa
abababbbaabaaababbaababaabbabbaa
baabbaabaaaaaaaaaaabaaba
ababbbaabbbbababbbaaaaab
baaabbabaaabaaabaaaabbbbbaaaaaba
bbaaabbabbabaaaabbaaaaaaababaabbbabaaaba
abaabbbaabaaabaaaabbbbbbbaaabaabaababbba
bbbbabaabbbbbaababaaaaabaaabbabbbabababbbaabbaaa
abaabaabaaaaabaababaabbbbbaabaaaaaababbb
aabbbbbaaabbbbabaabaaababbbbbbabbbbaabbbbaabbbaa
abaabbbaabaaaaaaaaaabaaa
baabbbababbbaababbabaaba
babbbaaaaabbbababbababbabbababab
baaabbababbbabbbabbbbbba
abbaaaaaabaabaabaaabbbbaabbababbababbaaa
abbaaaabbaaabbababbaababaaaababbbabbaabb
baabaaabaaabaaabbaabababbaabaaba
ababbbbaabbaaabbbbaababaaaaabbbbabbababb
baabbabbbbabbbbabaabbababbbbababbaaaaaababababba
abaabaaaabbaaaababbaaaabababbbaaababbabaabaabababbbbbaab
abbbbbabbaaaaaabbabaaaaabaaabbbbbaabababaaababaaabbbabab
baabaaabbabbabababbaaabbbabbabbabbbbbabbbabbbaaabaaaabab
babbabaaaaaabbbbabaaaaabaabbbabbabbaaaaaaababbba
babbbabaabbbaaaababaabaa
aaabbabbbabbabaaabbbbabbabbababbabbbabba
abbaaaabaaabaaabbaabbabaaaababbabaaabbbbbababbaaabbabaab
aabbabaabaaaaabbaabbbaabbabaabab
baaaaabbbbaaaaaaabbbbbabbbbbbbbbaababbbbbbbaabaa
bbababaaabbaabaabbabababbabaabbbabbaaaaaabbbabbb
aaaabbabbbaabaabaaaaaaaaabbbbbaaaaabbbababbbaaaa
abbabbbbbbbbabababaabbab
babaabbabbbbabbabaaabbbbbbababbaaaabbbabbabaaabaabbabaab
bbababaaaabbbabbbbababbb
baabbbababbaabaabbbbababbababbbbabbbabab
baabaaaabbbbbbababbabbaa
babaaaaaaabbbaabbbbbbbaabaabaaabaaaaabbbabaaabbb
aaababbaaaaabbbbbbabbbba
aabbbaabbbabaaaaaabababaabbbabbbbbaaabaabbbaaaba
abbbabbbbabaaabbbbbbababababbbbb
abbbbaabaaaabbbaaaabbbbaaaaaabab
ababbbbaaabaaabaababaaab
aaaaaaabbbbaababbaabababaabababaabbbbabb
aabaaaabbaabaaabbaaaaaabbababbbaababaaaa
aabbabbabaaaaabbaaabbbab
bbbbbabbbbbbbbabbbabbaba
aabaababaaaabbabbbbaabbaabaaabaabbabababbbaabbbbbaaaabaa
babbabbabbbaababaabbbbbbabbaaabaabbabbbaabbbbbbb
aabbaaabaababbababaaabab
abaaabaaaababbabbbbbbbabbbaaaaaaabbabbaaaaabbbbb
babbbbbbbbaabaaabbbbbaba
aababbaaaaabababbababbbaabbbabaa
abbbbbaaabbbbaabaaaabbbbababbbabbbaabbaa
aabbabbaaabaaabaaaaabbabaabbaabbabbbbbabbaabbbba
baabbbabbabbaababbbbabbb
aaaaaaabaabaaaaabbbbbbbbaaabbabbbabaabababababbb
bbabbbabbabaaaabbaabbbabaaaabbbabaabbabbbbabbabbabbbaabbbaabaabaaababaaa
bbaabaabaabbaaaaabaabaaaaabaabbbbababbaa
bbbababbabaaaaabbbbabbab
abbbabbbaabbbaabbbbbabbababaaabbabbbbbaabbaabbbbabbababbabbbbbbb
babbabbaaababbabbbbabbbaaaabaaababbaabaaabababab
bbabaaaabbbabbbaababbabbaababbaa
abbbbabbabbaaaaaaaababaa
bbbababbabbaaabbaabbabbbbbbabbbbaaaabbaa
abbabbbbbbbaababbaabaabbbbabababbaaaaaaabbbbbababbabaabb
aaaaaababaaabbaaabaaaabb
babbababbabbbaaababbbabbbbbabaab
aaabaaabbabaabbbbababaabaabbbbbaaabababb
aabbbbbaabbbbabbbbbbababaaaaabbaabbabbabbaaabbbbbbabbabb
abbabaaababaabbaaabbaaabbaaaababbbbbbbba
bbbbbbabababababbbabbbabbaaaaabbabaaaabaabaaaababababbaa
abbaabaaaabbabbbabaababaababaabbbbbbbaba
abbabbbbbabbaababbbaabaa
abbaababbababaabbbaaabbaababbbaaabaaabaabbaaabbb
bababaabaaaababbbbaaaaaaaaaaabab
bbbbabbbbaabbabababbabbb
abbaaaabaaaaaabaabaaabaaabbbbaaabbabaaba
bababbbbaaaaaababaabbabbbbaabbab
abbaaabbababaabaabaabbab
aabaaaabaabbabbabbbababa
aaaaabbabbbbbbaaaaabbabaaaaaaaaaabbbbabbaabbabbabbabbbaaaaabaabb
bbbbbaaaabababbababbbaabbabbbbaaaabaabaabaabaaababbaabababbabbbb
abaabaabaabbbbbbaaaaabab
aabbabaaababababbbbaabbaabbbbbaabbabbaabaabaaabbbaabbbaa
abaaaaaaabbaababbbbbbabbbbaabbab
babbabaabaaabbbbabbabbaa
aabaaaabababaabaaabbaabbabbbabababbbbbbb
aabbaaaaaaabaaaaabbbbabbbaabbbababbaaababbaaababbbaabbbb
aaabbbbabbbbbbbbbbaaabab
aabbbabbbaabaabbaaaaaababbabbbbbbbbaabbb
bbbababbbababaabaabababb
aabaabaaaaaabbabbaabbaabaaababab
babbbaababaaabbaabbaaabbbbbababa
baabbaabbbaaaaaaaaaabbabbabbbaabbabaaabbbbaabbbbbbbaabaaaabaaabbabbabbaa
abbaababbabaaaaababbbaba
bbabababaaaaabaababaaaba
aaaaaababaaaaabbaabbaaabaaaaababababbaba
babbbbbbaabbaaaabbbbaabb
ababaabbbbaabbbaababbbbb
bbbabbbaaaabbaabbabbbbaa
aabababaabbaaabbabaaaaba
baabaaabaabbabbabbbbbaaa
bbbbbbbbbbbabbaabbabbbbabaabbaab
babbaabaaabaabaaabaabbbabbabbbaa
ababbbbaaaaaabbaabbaaaabbbaababaabbabbabbbbabbabaaaaababbaaabaab
aaaabbabbaaabbabababababbaababaa
aaabaaabbabbaaaaaaabaaaabbbbbbbaaaabaabababbbabbabaaaababbbbabaa
babaaaaaabbaabbbbbababaababababb
bbabbbabbbaabaaaabaaabbabbbbbbba
abaabaaaaabaabaaababaabaababbabbbbababbb
bbaabababbbaababaaabbbbaabaaaaaaabaaabbb
aabaabbaabbbbbaabaaaaaabbaabbababbaaabbaaabbabab
baabaabbaaaaaaabbaaaabab
baaabbababbabbbbaabbabab
aabbbbbbbaabbababaabababbabababbababbaaa
bbabbbbbbaabbabbabaaaaaabbbbaabb
aabbaaaaaabbaaaaaababbbb
bbbbabbababbabaaababbbbaabaaaaba
bbbbbbaaababaabaabbbbaababbbbbabbababbaa
aaaabbbaaababababbbaaabaabaaabbbbabaaaabaabbbaaa
bbabbbabbbbbbbbbababaabaabbbabaabbaababb
aababababbabaaaaababaaaa
babbaabbbaaaababbbaabaaababbabaaaabaabaaabbaabbabbabbbbbabbbbbab
aaabbabbaaaaabbaaabbbaabaaabaabb
abbbaababbbababbaabbbbbbababbbab
bbbabaabbaaaaaabbbbbbaababbaaabaabbabbbbaaaabbaa
aaabaaabababbaabababaaab
bbbbaabaaabbbaabaababbabaabaaaabaaaabbaaaabaaabb
aaaaaaaababaaaaababbbaabaaaaabbababbbbba
abbababbbbbaaaababbaaababaaabaababbabaaabbbbbabaababbabbaaabbabaabaabaab
aaabaaaabbabaaaaababaabaabbaaaaaaababbabbababaaa
baabbabbabababababbabbbbbabbabbb
abaaabbaabbbaababbbbaaabbbbbbabbaabaababbbbaaaba
ababbaabaabbabbababaaaabbaaaabbabbaabaababbbaabbbabbbbabbbbbaabb
baabbbabaabaabbaabbbbaaa
abababaaaaabaaaabbbbbabbbbaababb
ababababbaaabbabababaabbabbaabbbbaaabbababbbbbbb
abaaabbabbaabbbabbaabababbaaabbb
babbabaabaaababababbbbaabaaaaaabababbbaabaabaaba
babaaaaaababaabbabaabaabababaabbbbbbabbbaabbaababaababbaaababbbbbbbababa
baabaabbaabaaabaaabbaabbabbabbabbbaaaaaaabbbabab
bbbaabbababbaaaabbaaabbb
aabaabaabbbbaaababbabaaaababbabbbbbabbbaabaaabbbbbaaabbbaababaab
aaababbbbaababbbbabbaabbabbabaababaababb
bbababaabbbbabbaaabbabbbababababaabbaaabababaaaa
bababaababbaaabbaaaabbaa
abbbaabaaabaabbbaabbbababbbbabbaabaabaaaaabbbabaaaaaabbb
aabaabbabbabbbbbbbaaaaab
bbbabbabbbbaabbbabbbabab
bbaaabbaabaaaaaabbaaabbb
aaaaabaabbabaaaababbbabb
aaaaaaaaabbabbbbbbabbbbbaababbaa
bbbbbbabbbbbabbbabaaabab
abaabbbaabaababaaaaaaaababaaaababbbbaaaa
babbbaabbabaaabbbaabbaabbbbabaaaaaabaaaabbbbababbbaabbbbbbbbbaab
aabbbaabaaaabbbbaaababbabababaabbbbbbbbbbbbababbbbbbaaaaabaaabbbaababaaabbaaaaabbbbaabaa
aaaababbaabbabaaabbabbbaaabbaabbbbabbbbaabbabbaa
bbaabbaabbbaaaaaaabaaabb
babaabbbababaabaabaaaaaaababbabbababaabbabbbbaba
aaabbabababaaaaabbabaaaaaaaaaaabbbbbaabaaaabbbabbbbbbaab
aaaaaaaaababbaabaababbaa
bbabaaaabbaaaaaaaabbbbbbaabaaaaa
abbabaaaabababaabaabababbaaabaab
abababbbaababbabbbbbbbbbabbbbabbaababbabbbaabbabbbabbbaabababbab
babbbbaaabaabbbaaaabbaaa
bbbbbbaabbaabaaaabbaaabbbbbabbbbbbbabaab
babbaabaabbabbabbaababaa
abbaabbabaabbaaaabaaaabb
babaaaabbabbbbbbaaaabbaabbbabbababbbbaba
File diff suppressed because it is too large Load Diff
-49
View File
@@ -1,49 +0,0 @@
chsprq bdghf dtpcd djtblr kggl cvdvd jzlht lkdg nd szvsg drv ptn mhjg dnlsjr rhvglf fmgg prkpfnh tfdl bcthd lmxc hjpv rsvlb hgmq xsvjb cqgqxq vsvmt ccd sqdsxhb vpzhpnx dlj dvqsf mmr bmtn vgqd zfrn zffphr nlmsj xxhf rfdxph ggqlkpr cmfj bfkm stcctv rlnsc snngn xzb zjfb qdccb qxrm jlhv vfpmcdc gbnj srhmt lfrq blcb jcnglmz bhrjc qmvzln nllmj zqhxc xpk drchk pbhthx qks dgvqv tcph (contains fish, wheat, shellfish)
cvdvd lkdg dgvqv czd mjnjq kxkzv bdghf xzb xsxkj bfjlcv sbkq gsmvb cvrzmd prspxdl pbhthx sqdsxhb ppfmb zffphr chmmqq htfvt ccd szd qks qthvbf prkpfnh xdlhgf rqhp fmgg mxqht mdpqq phh xrstpzc chxkn vgqd qmvzln prg vfpmcdc fsgj zgfr cqgqxq hfl csnfnl pcg ghrnk hmrh kdkrhr qldrh rsvlb lczvhs xsvjb qsndg rlnsc djtblr ffpq snngn zbs dvqsf qsvfk hmcc blgxsl (contains dairy)
bmtn ptn pmvgd zffphr cfjqbs chmmqq prkpfnh jzlht mxqht xzb blgxsl pdzqrqq pbhthx vpzhpnx fmgg xpk prg mjnjq kggl mhjg mmr fmgnz msdgp dnlsjr zgcrp bdghf ctfdj dgvqv snngn ghrnk tfdqg hctzvvc ddbss xmnqb htfvt sqdsxhb zbs ccd xsxkj jfzd djtblr tltxb ktgqdf cspz qdms jtl mdrn rvmx jsxqj kdtr xrstpzc cfzcl lkdg zjfb nrsb rsvlb (contains shellfish, dairy, wheat)
dgvqv xrstpzc prspxdl ptbvs kfl vsvmt dsjrv tbfmsnj cvrzmd chsprq jlhv vpzhpnx zjfb pmvgd qklrs kdkrhr kvtlklq jsxqj ptn vgqd sbkq lkdg fmgg sqdsxhb zfrn pbhthx drv txnxdd bdghf rsvlb hjpv cfjqbs csnfnl sdvc chmmqq cspz xdjz fqpjl zrlpbh tnhjq vtjmvd nrsb rnpjxc mdpqq bfkm rfdxph lzbfz ppfmb dptx fmgnz bhrjc qldrh qksrp dtpcd zspn qdms kdtr jzlht xzb nrgcrd (contains soy, eggs, shellfish)
zspn dnlsjr bmtn rdnvlt dlj blgxsl qthvbf qsndg dptx rsvlb bqdbr rlnsc bsnvm cfzcl kggl lcgdsp ffpq sqdsxhb mppxj hmcc pbhthx qxrm csnfnl mpnd fmgnz qdgdsg qklrs blcb cpp ctfdj cfkdn ktgqdf dvqsf jsxqj xtnz cfjqbs zbs sbkq gsmvb hgmq jcnglmz cvdvd kbfqvxf kfl cmfj lkdg pdzqrqq dgvqv xdlhgf qks ndfmx hfl tbfmsnj hmrh xlttl ppfmb zgcrp tsqp djtblr zdkgvxk drvxr xsvjb bbztv qmvzln cqgqxq ptbvs (contains soy)
ktgqdf hnnk fqpjl phh hmrh dnlsjr lkdg qdccb bmtn pbhthx lzbfz nxlq msdgp chmmqq rsvlb kfl vpzhpnx ccd szd bdghf mbbz hfl vbdsgx dvh lcnnf vtjmvd drchk cvrzmd bhpn bqdbr xpk qsndg fmgg snngn qksrp dgvqv csnfnl hgmq fsgj jtl zfrn cfzcl bbztv tsqp drv kxkzv xmnqb mpnd xzb chxkn qks rfdxph prkpfnh gsmvb nrsb htfvt qthvbf pcg xdrm ctfdj dxqbf zdkgvxk dlj kggl srhmt drvxr fbj sdvc tfdqg dxn jfzd cqgqxq cspz fmgnz ndfmx bplgpn rnpjxc (contains wheat, dairy)
blcb sqdsxhb lkdg kdkrhr nd phh sdvc qldrh zspn jcnglmz qsndg lzbfz xdrm rsvlb kbfqvxf cspz gdg xmnqb qxrm chxkn xtnz cvrzmd chmmqq fmgg dxqbf mdpqq vpzhpnx ccg mbbz rdnvlt zjfb ssjpd bqdbr qdgdsg jsxqj fktqdh kvtlklq dnlsjr tcph cmfj tfdl qtkbvr qgxj qphl zrlpbh stcctv rqhp qmvzln fbj prspxdl xzb dgvqv kfl mhjg jtl csnfnl ccd dvqsf dvh vtjmvd vgqd lmxc fsgj zqhxc tsqp zffphr (contains wheat)
stcctv fsgj sqdsxhb hctzvvc mxqht tcph bdghf dnlsjr rfdxph vpzhpnx rhvglf ctfdj czd nlmsj bhpn bmtn vgqd ppfmb xzb msdgp kfl dvqsf sbkq bcthd qdgdsg csnfnl dptx cpp zgfr jcnglmz pcg vfpmcdc hnnk gsmvb qdccb xsvjb rnpjxc zdkgvxk jtl gdg nrsb dcmpb rhqfkmn jgnxfn cvdvd dgvqv mdrn zbs hcgh kxkzv tfdqg dxqbf pmvgd hjpv hmcc srhmt szvsg ssjpd xdrm lcnnf zrlpbh pbhthx tvkvmms ptbvs nrgcrd lkdg (contains fish, sesame)
hctzvvc drvxr dxqbf vsvmt cqgqxq rfdxph zgfr dvh kpbg lkdg vtjmvd tfdqg dgvqv hcgh jzktf chxkn jlhv dnlsjr chmmqq jtl cfjqbs xzb fmgnz ghrnk prspxdl dxn dlj bplgpn hmcc xdjz bfkm szd qgxj zspn hnnk srhmt hgmq fktqdh xrstpzc szvsg mjnjq xmnqb sqdsxhb qdccgvb zrlpbh gbnj ptn ffpq sbkq bhpn ddbss rsvlb lmfccx qklrs rnpjxc cfzcl phh xsvjb qthvbf zdkgvxk czd bdghf tvkvmms fsgj prkpfnh rrjt ptbvs mxqht csnfnl qxrm rhqfkmn xtnz kbfqvxf gjbfmm rqhp bmtn bhrjc drv ktgqdf zffphr hjpv cspz (contains wheat)
nd prg djtblr lrgxlct mppxj zgcrp lkdg kvtlklq zrlpbh rdnvlt rnpjxc xmnqb hctzvvc jfzd tnhjq fsgj vpzhpnx zdkgvxk ctfdj cspz phh zffphr xxhf gjbfmm jsxqj mpnd ggqlkpr qldrh chxkn fqpjl mbbz qdccb pbhthx ktgqdf hfl drchk cvdvd pcg ccg bsnvm nxlq prkpfnh csnfnl jtl qdccgvb jgnxfn tltxb nrgcrd ftzgp sqdsxhb sdvc bfjlcv xzb bfkm bbztv tbfmsnj dnlsjr drv rsvlb qdms cmfj chsprq bcthd drvxr dtpcd kggl ndfmx xdjz qksrp lczvhs gbnj lcnnf vfpmcdc dptx zqhxc qklrs (contains eggs)
bhrjc lkdg vtjmvd ffpq cvrzmd ndfmx djtblr sqdsxhb nxlq gsmvb hfl chsprq dvqsf csnfnl ccd fsgj cqgqxq qklrs xzb qxrm gjbfmm ktgqdf xmnqb zspn tbfmsnj hctzvvc lczvhs kggl bhpn rhqfkmn tfdl ssjpd msdgp txnxdd nd blcb kbfqvxf gdg ghrnk dcmpb kvtlklq phh rlnsc qtkbvr dlj qphl tnhjq zbs mppxj stcctv dnlsjr xtnz jtl zffphr xdlhgf vbdsgx rsvlb hhxrrr blgxsl zgfr dgvqv xdjz jfzd chmmqq bsnvm czd lfrq (contains wheat, eggs)
tvkvmms xzb fbj rhqfkmn qdgdsg rrhsh sqdsxhb tfdqg qxrm rqhp ctfdj qthvbf tfdl czd zbs nlmsj xpk cmfj qtkbvr blgxsl vfpmcdc gbnj prkpfnh zqhxc cfkdn mhjg bsnvm fmgg xmnqb qdms dnlsjr rsvlb hgmq csnfnl dgvqv hjpv dxqbf bmtn pbhthx stcctv qks (contains nuts, wheat)
szvsg zrlpbh xsvjb ktgqdf bbztv xxhf bcthd qklrs ctfdj sqdsxhb xzb lkdg txnxdd sdvc pbhthx mbbz cpp dsjrv xdrm mdrn hmcc rdnvlt xdjz mhjg ptn kdkrhr rrjt xdlhgf qdccb rsvlb qmvzln qdccgvb jzktf zfrn lczvhs kfl dnlsjr xmnqb csnfnl bdghf ppfmb (contains nuts)
jgnxfn zdkgvxk prg dxqbf mxqht kdkrhr mhjg pbhthx dgvqv tcph zffphr cfzcl qthvbf xxhf bfjlcv hmrh mdpqq ccd cspz mppxj nllmj lkdg qmvzln zgfr fmgg qtkbvr bmtn hhxrrr nxlq xzb ccg dptx sqdsxhb gdg gjbfmm prkpfnh ktgqdf qdccb tvkvmms mbbz qks lrgxlct dnlsjr cfkdn bfkm ppjrrm csnfnl rhqfkmn lzbfz jzktf szvsg (contains dairy, fish)
fktqdh zspn gjbfmm bmtn ccd hfl ftzgp zrlpbh bhrjc lfrq rrjt rvmx pbhthx sbkq jfzd zdkgvxk xdjz srhmt sqdsxhb dlj rsvlb qmvzln vbdsgx drvxr xmnqb sdvc mbbz bplgpn blgxsl hnnk zgfr ptn hcgh xlttl dnlsjr qthvbf lzbfz qtkbvr rnpjxc qsndg ktgqdf dtpcd gdg kfl csnfnl rdnvlt zjfb tbfmsnj ddbss dptx gsmvb lcnnf szd bqdbr lczvhs cmfj drv tqgd kvtlklq mmr ctfdj zgcrp prspxdl fsgj zffphr ccg blcb qdms jlhv xzb dgvqv zqhxc (contains sesame)
sqdsxhb tfdl dgvqv xpk xzb csnfnl ftzgp mbbz xrstpzc nlmsj rvmx ccg fmgg xlttl dtpcd qphl nrgcrd rdnvlt lxfbmt dnlsjr drv fbj bfjlcv htfvt lkdg nllmj lcgdsp cvrzmd qthvbf hmcc hfl prkpfnh dvqsf hhxrrr cpp kbfqvxf xsvjb kvtlklq rqhp pcg lmxc jgnxfn nd lrgxlct ppjrrm djtblr sbkq ffpq qdms prspxdl qxrm zffphr cspz chxkn rlnsc pbhthx tsqp nrsb mpnd xxhf (contains dairy, eggs)
dsjrv zbs zfrn lkdg hfl tfdqg lcnnf rrjt cvrzmd qdgdsg tvkvmms hcgh fmgg dxn ptbvs xsvjb xzb gsmvb nrsb rsvlb zrlpbh hmrh vbdsgx prg bbztv zspn pmvgd srhmt cfzcl ppjrrm rrhsh cmfj rhvglf csnfnl prkpfnh hmcc mppxj pbhthx dtpcd mbbz zffphr rfdxph dnlsjr sdvc sqdsxhb ktgqdf (contains soy, eggs)
htfvt rsvlb qthvbf txnxdd cpp jtl bbztv lrgxlct chmmqq qdccgvb bfjlcv zffphr xzb jgnxfn hctzvvc dvqsf kpbg rnpjxc dgvqv lzbfz zspn zfrn sqdsxhb blcb jzktf xdlhgf dxqbf pdzqrqq ftzgp xpk sdvc djtblr kxkzv xdrm pbhthx csnfnl qsvfk snngn jlhv vgqd vpzhpnx jcnglmz nd lxfbmt drv mpnd cmfj cspz pcg bfkm dnlsjr qphl qks bsnvm bcthd (contains eggs, fish, shellfish)
kbfqvxf tnhjq kggl vfpmcdc prg zfrn jcnglmz tvkvmms fmgg rsvlb zdkgvxk qsndg vgqd tltxb ndfmx dgvqv bmtn gjbfmm dnlsjr dxqbf szd lxfbmt drvxr sqdsxhb rfdxph nrsb ppjrrm mdpqq zjfb pbhthx bhrjc rqhp qmvzln vbdsgx ccg csnfnl blcb hcgh mmr cfkdn gsmvb xzb (contains wheat, fish, shellfish)
nrsb jfzd lcnnf rsvlb bdghf cvdvd cpp ggqlkpr xpk xlttl hjpv cvrzmd mdpqq mhjg htfvt ftzgp zffphr djtblr rfdxph qxrm pmvgd fmgg tbfmsnj bqdbr qgxj hmrh nllmj qdms sbkq qphl lczvhs stcctv drv lfrq fsgj xtnz dnlsjr csnfnl gjbfmm vtjmvd ccg qdccb phh lcgdsp prkpfnh hctzvvc tsqp qldrh jzktf tvkvmms dgvqv pbhthx chsprq ktgqdf mmr hmcc xsxkj sqdsxhb dxqbf xzb cqgqxq jlhv mdrn blgxsl bplgpn szvsg ctfdj ptn bcthd ddbss kdtr zrlpbh fbj gbnj qsndg kdkrhr gsmvb tfdl (contains nuts)
cmfj jzktf rdnvlt ftzgp qtkbvr lcgdsp prspxdl htfvt drv rrhsh qdccgvb zdkgvxk msdgp vfpmcdc fsgj nd lmxc zgcrp cfkdn dxn tltxb mmr dlj nlmsj bfkm hcgh dsjrv qgxj hjpv vsvmt lzbfz xxhf zspn qdccb xzb drvxr pcg dnlsjr chsprq kxkzv lfrq tfdl gsmvb csnfnl ccg pbhthx blcb lkdg dvqsf sqdsxhb xdjz lcnnf dptx xsxkj jlhv gdg rrjt dxqbf dgvqv (contains shellfish)
tsqp jgnxfn rvmx rhvglf szd qdccgvb gjbfmm rdnvlt xpk ssjpd fmgnz bqdbr vbdsgx fmgg pbhthx dvqsf ptbvs blcb kbfqvxf bfjlcv hjpv msdgp gbnj kfl vfpmcdc cfjqbs pmvgd fktqdh csnfnl xzb qdccb qdms ffpq bhrjc lrgxlct rhqfkmn ggqlkpr jlhv qklrs mxqht tvkvmms kpbg prkpfnh mmr nxlq nrgcrd chsprq djtblr rlnsc ccd sqdsxhb drchk vpzhpnx cfkdn mppxj lkdg ktgqdf cpp prg srhmt xdlhgf kdkrhr xmnqb rqhp qthvbf zrlpbh gsmvb lxfbmt ndfmx sdvc ddbss xlttl dnlsjr hhxrrr tfdl qxrm qphl dxn rsvlb tbfmsnj qksrp bdghf xdjz qgxj xsvjb mpnd qks jzlht (contains dairy, soy, shellfish)
txnxdd kdtr szvsg xsvjb bbztv lkdg vsvmt bqdbr qdccgvb blcb sqdsxhb stcctv xzb jtl qphl csnfnl nrgcrd mjnjq lcnnf xlttl zgfr gdg vbdsgx drchk mhjg bhrjc mxqht fqpjl rrjt nrsb lmxc qks dvh pbhthx kggl jcnglmz dnlsjr dtpcd hhxrrr vpzhpnx fsgj tnhjq ktgqdf rsvlb tqgd rrhsh kpbg chsprq gbnj dptx ghrnk msdgp qdms hmrh kvtlklq mdrn zbs tltxb zfrn nlmsj zspn kdkrhr xsxkj ppjrrm cqgqxq lrgxlct kfl jgnxfn (contains sesame, dairy)
jzlht lmfccx gdg bqdbr cmfj jlhv bcthd ccd lzbfz vpzhpnx hnnk fktqdh zfrn chxkn bfjlcv xmnqb chsprq ssjpd qklrs qdms ccg hhxrrr kggl vbdsgx nrgcrd xzb cfkdn mppxj lkdg lfrq dnlsjr ffpq bsnvm xsvjb dgvqv qphl rhqfkmn dptx rsvlb szvsg dcmpb mdpqq bfkm rvmx dxqbf zrlpbh bdghf cvdvd drvxr kdkrhr stcctv qdgdsg htfvt lmxc tsqp bmtn xdjz pbhthx blgxsl dtpcd ndfmx qdccgvb zbs tcph drv rrhsh tbfmsnj djtblr qsvfk bbztv sbkq prg kpbg sqdsxhb (contains dairy)
zgcrp dsjrv blcb kfl bqdbr rvmx jsxqj ssjpd lmxc rnpjxc rsvlb kvtlklq zffphr zfrn qthvbf czd mbbz ndfmx xpk chsprq nrsb vsvmt dcmpb cvrzmd lczvhs nxlq gbnj rrjt bplgpn pbhthx hjpv ffpq rlnsc xzb fmgnz dnlsjr blgxsl csnfnl zqhxc hcgh sqdsxhb ccg tsqp fbj rdnvlt mxqht vtjmvd dgvqv xxhf chxkn zspn (contains shellfish)
sqdsxhb ghrnk bfkm rdnvlt bbztv hgmq kdtr rvmx cvrzmd rqhp dxqbf ptn kbfqvxf vpzhpnx dcmpb xdjz pbhthx qphl qdms jfzd pcg ffpq ctfdj hfl dnlsjr qmvzln zspn lfrq ggqlkpr bfjlcv cpp tnhjq bmtn csnfnl mbbz qdgdsg fmgnz ptbvs jzlht mdpqq qdccb ccg rnpjxc msdgp kdkrhr lcnnf gbnj jgnxfn xzb snngn qgxj qklrs bhpn czd kpbg rsvlb dsjrv ftzgp zqhxc hmrh fmgg phh szvsg prg jcnglmz ddbss zrlpbh djtblr tfdl pdzqrqq qks vsvmt nrsb xxhf fqpjl jzktf xdlhgf bcthd qdccgvb zfrn dgvqv chmmqq chsprq chxkn (contains shellfish, fish, eggs)
dgvqv qthvbf kfl bsnvm dvqsf nd qdccb ssjpd lczvhs lkdg xdjz vbdsgx vgqd cfzcl kdkrhr cvrzmd kxkzv csnfnl bfkm xmnqb qsvfk fsgj ktgqdf vtjmvd bhrjc ggqlkpr gbnj dnlsjr vpzhpnx hmrh hgmq ftzgp rsvlb drvxr jgnxfn qdccgvb snngn ccd rrhsh sqdsxhb lmfccx lmxc zgfr ppjrrm jcnglmz nrsb bdghf xzb ptn ddbss xpk (contains wheat, eggs, shellfish)
dvqsf prg xdrm fqpjl fktqdh qdccb nrgcrd xpk lkdg bmtn ndfmx ghrnk szvsg pbhthx qklrs mdrn djtblr zfrn chxkn nlmsj srhmt jsxqj gdg jtl qmvzln blgxsl hfl sqdsxhb lrgxlct drvxr lfrq rfdxph jzlht ccg vsvmt csnfnl hmrh xzb jcnglmz mppxj rlnsc tltxb rdnvlt fmgg vfpmcdc ccd dgvqv hhxrrr mpnd rrjt zjfb pmvgd tsqp dvh ggqlkpr vbdsgx tfdl gjbfmm dnlsjr tbfmsnj zdkgvxk qxrm mhjg (contains fish)
tnhjq ffpq vgqd hgmq qdccb vtjmvd mppxj kvtlklq xdrm gdg ppfmb ghrnk dgvqv dxqbf czd drv xzb xsvjb rhqfkmn dtpcd kfl jgnxfn zgfr nd hctzvvc dlj cfkdn dptx xmnqb txnxdd hjpv msdgp zdkgvxk zjfb ggqlkpr cspz rrjt cmfj hcgh ssjpd sdvc nllmj qthvbf fktqdh dnlsjr fmgnz xrstpzc rdnvlt snngn lmfccx qksrp kdkrhr qklrs mhjg kggl ddbss szvsg sbkq blgxsl lkdg pbhthx ccd lczvhs xpk xtnz stcctv sqdsxhb mpnd rsvlb zrlpbh zffphr hmcc lcnnf hfl hnnk dvqsf cpp (contains eggs, dairy, wheat)
bmtn tnhjq dnlsjr cfzcl kdkrhr gsmvb ddbss xdjz jgnxfn ghrnk zrlpbh pbhthx qsvfk sdvc pcg cfjqbs gbnj vgqd xsvjb qsndg pdzqrqq zdkgvxk sqdsxhb rdnvlt tvkvmms szd bhrjc xzb dlj lkdg vtjmvd ggqlkpr vpzhpnx nxlq qphl rlnsc bplgpn rsvlb kxkzv qksrp cfkdn mdrn xdlhgf csnfnl tsqp msdgp lcnnf xlttl qdms prkpfnh hmcc mjnjq lczvhs sbkq xdrm tcph ffpq dxqbf ppfmb phh ctfdj nlmsj kvtlklq fbj jcnglmz vsvmt hhxrrr lmxc srhmt hjpv cspz kbfqvxf zqhxc rhqfkmn dxn xsxkj fsgj qklrs nllmj kggl hfl jzktf zffphr lfrq (contains dairy)
djtblr qdccgvb qphl mpnd mxqht lxfbmt csnfnl chxkn blcb lfrq cspz tcph ffpq mbbz nlmsj fbj kdkrhr sbkq qxrm rsvlb zqhxc qsndg pdzqrqq zrlpbh xdrm xrstpzc lkdg hmrh gbnj lczvhs kvtlklq rrjt rnpjxc hmcc xzb kggl jfzd ppfmb txnxdd xtnz dnlsjr mmr pbhthx bfjlcv nrsb vpzhpnx dxqbf sqdsxhb drchk (contains dairy, soy, eggs)
qks ddbss hhxrrr kpbg xdjz fbj sdvc fktqdh cpp prspxdl vtjmvd tvkvmms rdnvlt tltxb txnxdd ccd tfdl vpzhpnx dvh rvmx bbztv fmgg bhpn phh pmvgd sqdsxhb pcg bqdbr rhqfkmn ctfdj xdlhgf rlnsc prkpfnh dnlsjr nlmsj cvrzmd srhmt qxrm csnfnl mjnjq ptbvs jzlht lrgxlct dgvqv ggqlkpr prg drchk qtkbvr hjpv jtl rsvlb lkdg mmr qphl lcnnf hfl kbfqvxf vbdsgx jgnxfn vgqd nllmj xzb chxkn szd zgcrp blcb vfpmcdc szvsg hcgh djtblr xtnz tsqp snngn ndfmx (contains soy, wheat, shellfish)
vbdsgx sqdsxhb xdlhgf tltxb fmgnz zgcrp hcgh xtnz blcb lmfccx qks ffpq dlj qklrs jfzd chmmqq jzktf tfdqg xzb dgvqv ptbvs qdccb gbnj prg drchk ctfdj lczvhs xsvjb kpbg msdgp blgxsl kggl tqgd kdtr fsgj nd cpp drvxr rsvlb xxhf dcmpb csnfnl zgfr cvrzmd lfrq tvkvmms nxlq bfjlcv ggqlkpr kvtlklq vfpmcdc dnlsjr pmvgd kbfqvxf jgnxfn cvdvd bhrjc mppxj jcnglmz lkdg szd gjbfmm xlttl gdg hfl prkpfnh rrjt zjfb bhpn bbztv lrgxlct zffphr cspz vgqd mbbz lcgdsp ccd chsprq (contains eggs, wheat)
gbnj vpzhpnx kxkzv lzbfz phh hjpv qklrs mhjg zbs hhxrrr qxrm ddbss mdrn lxfbmt vfpmcdc qmvzln hnnk fbj pcg cqgqxq lkdg dvh srhmt cmfj hcgh nllmj rrhsh cfjqbs nrsb ptbvs qthvbf ffpq qsvfk bmtn bplgpn tvkvmms ctfdj chsprq ktgqdf mmr ghrnk dgvqv gdg lrgxlct hmrh kpbg blcb chxkn xzb vbdsgx tbfmsnj bbztv qdms pbhthx rsvlb nd sqdsxhb csnfnl rnpjxc kvtlklq (contains eggs)
jfzd prspxdl dcmpb fsgj pbhthx vpzhpnx kdkrhr ddbss zdkgvxk ppjrrm blgxsl jzktf qsndg zjfb dnlsjr cmfj qdccgvb nrgcrd lkdg ndfmx hfl bbztv nllmj kbfqvxf drchk xzb lcnnf cfjqbs csnfnl lxfbmt cpp ssjpd rdnvlt kvtlklq rsvlb tsqp lmfccx szd mmr vsvmt nrsb jtl gdg qtkbvr lmxc kdtr dgvqv (contains fish, shellfish)
cfjqbs cqgqxq dxqbf xpk lmxc sqdsxhb dnlsjr fsgj bbztv gsmvb csnfnl hjpv dvqsf tnhjq ndfmx xdjz lxfbmt lkdg szd vbdsgx qklrs rfdxph jtl mppxj mdrn xdrm pcg bdghf tvkvmms szvsg mmr ggqlkpr txnxdd cfzcl prkpfnh lczvhs nd hmcc bmtn bhrjc dgvqv ccd snngn dcmpb qgxj tsqp qsvfk mjnjq dtpcd drv cvrzmd qtkbvr kvtlklq hnnk hfl bplgpn ptbvs hmrh tbfmsnj rhvglf vsvmt ccg cfkdn tltxb zfrn nlmsj fbj ctfdj msdgp zspn prspxdl qphl xzb rlnsc ftzgp nrsb qdgdsg cvdvd qdccb vtjmvd pbhthx (contains sesame)
lcnnf bfjlcv zgfr stcctv rhqfkmn prkpfnh ddbss ktgqdf xzb dtpcd zffphr cpp jtl zfrn ghrnk xmnqb dcmpb qsvfk qdgdsg cspz bcthd fktqdh qtkbvr ctfdj dgvqv csnfnl mbbz fsgj cfzcl tfdqg hnnk nrsb bfkm rsvlb qdccb djtblr hcgh nd dxn mxqht qklrs nrgcrd gjbfmm srhmt xtnz hfl lkdg tcph vfpmcdc zspn dnlsjr bhrjc xpk chsprq ndfmx mhjg jzktf prg ggqlkpr qphl dsjrv zqhxc nllmj lmfccx hmcc xrstpzc sbkq ffpq dlj zrlpbh xdjz kpbg sqdsxhb drvxr ccg pcg szd rrjt (contains shellfish, sesame, nuts)
ffpq sqdsxhb tcph rsvlb prspxdl bmtn rrjt lkdg prg rhvglf dnlsjr chmmqq lcnnf fktqdh qks bsnvm mjnjq zrlpbh bfkm kdtr ptn bcthd qsndg mmr pbhthx zdkgvxk cfzcl xzb bhpn ccd xxhf vfpmcdc dxqbf fmgg jgnxfn gbnj vpzhpnx mdpqq htfvt nllmj csnfnl prkpfnh qdccgvb xpk dptx drv dxn tltxb pcg zspn pmvgd lfrq rdnvlt drchk rlnsc xsvjb lrgxlct (contains nuts)
dlj rhvglf mppxj qklrs qphl kggl sbkq rsvlb blgxsl tsqp dvh lcnnf xdjz lczvhs csnfnl lcgdsp cvdvd qdgdsg rqhp cspz ktgqdf xrstpzc xlttl hmcc fbj chsprq pcg ftzgp cmfj vsvmt fsgj xmnqb cfkdn vbdsgx dgvqv pbhthx srhmt ptn zqhxc xdrm sqdsxhb rrhsh tfdl rhqfkmn hnnk dnlsjr qdms prspxdl cqgqxq czd djtblr dptx zfrn zjfb kdkrhr bhrjc qdccb dxn xzb qthvbf jzktf bbztv mpnd qxrm kbfqvxf vgqd szvsg xsvjb fktqdh jcnglmz mjnjq szd rdnvlt (contains wheat, fish, eggs)
dvh rvmx prspxdl lmfccx lczvhs qtkbvr csnfnl qdms stcctv nd vtjmvd lkdg mdpqq tltxb mhjg fmgnz qksrp kpbg kggl ghrnk htfvt jcnglmz xdjz ctfdj xlttl zspn hgmq jsxqj dgvqv ssjpd bmtn hjpv bsnvm dnlsjr czd sqdsxhb msdgp xxhf jtl ggqlkpr sdvc tsqp snngn vfpmcdc jzktf rfdxph xtnz chmmqq bfkm mppxj vsvmt ccg dcmpb nrgcrd kxkzv pbhthx prkpfnh rsvlb bqdbr rrjt zbs jgnxfn vbdsgx mbbz qklrs jlhv rlnsc zffphr xdrm mxqht (contains dairy)
sbkq mmr jlhv msdgp dgvqv rhqfkmn hhxrrr rnpjxc xsxkj rrhsh mpnd fmgnz xdrm nxlq fsgj qldrh qgxj djtblr chmmqq lkdg ghrnk bqdbr tfdl bbztv szd ftzgp txnxdd ggqlkpr bfkm kxkzv zspn qdgdsg rsvlb nlmsj tltxb cvrzmd dptx jzlht bhrjc xrstpzc kdtr zrlpbh ctfdj ppfmb dnlsjr mppxj rvmx tnhjq jgnxfn sdvc rrjt cfzcl vfpmcdc rfdxph ccd dxqbf lcnnf lmfccx cpp ffpq xsvjb pbhthx xzb cvdvd dxn zfrn dsjrv sqdsxhb vbdsgx hcgh (contains wheat, sesame)
dptx hgmq lkdg ktgqdf rhqfkmn hmrh dxn ndfmx phh djtblr lxfbmt xmnqb dxqbf qmvzln zgfr zdkgvxk fbj dlj rhvglf hcgh mbbz dsjrv lczvhs zfrn msdgp gbnj qklrs pdzqrqq pbhthx sbkq dnlsjr hfl sqdsxhb xtnz nllmj xzb ghrnk hhxrrr ptbvs csnfnl qdccgvb rsvlb dvh bmtn vbdsgx jsxqj ccd szd rnpjxc dtpcd snngn bqdbr drvxr lcgdsp xdjz (contains eggs, sesame)
jsxqj hmrh tltxb xlttl zqhxc tcph pbhthx cvdvd ppjrrm ccg bsnvm qmvzln mppxj jlhv rqhp vpzhpnx qtkbvr zgfr fktqdh gdg hctzvvc lcnnf rsvlb djtblr blgxsl fmgg dlj dgvqv qgxj zjfb chsprq qxrm sbkq rrjt jzktf zfrn fbj qdccb jfzd rhvglf xdjz lkdg czd qsvfk pcg rvmx dxqbf snngn bbztv szd chmmqq mhjg sqdsxhb csnfnl srhmt mjnjq fmgnz dnlsjr jzlht kbfqvxf gbnj hmcc ftzgp ssjpd xrstpzc lrgxlct drv cpp kggl (contains fish, sesame, nuts)
fqpjl phh dlj vtjmvd lmxc ddbss xrstpzc qsvfk jzktf qphl xmnqb ktgqdf qks ccd zrlpbh qdccgvb rlnsc szd nd ndfmx lkdg mjnjq zspn xpk pcg vpzhpnx rnpjxc xsxkj sqdsxhb dnlsjr zffphr lrgxlct lfrq lmfccx ppfmb hhxrrr srhmt fktqdh blgxsl pbhthx qgxj lzbfz ccg rsvlb chmmqq hcgh dgvqv ghrnk lcnnf mdpqq jzlht qtkbvr xdlhgf bbztv gsmvb rhvglf jsxqj hmrh cfkdn xzb (contains eggs, dairy)
xdjz csnfnl drv rsvlb bmtn bplgpn lcgdsp cvrzmd bfjlcv pmvgd mhjg jtl zspn jsxqj qthvbf fktqdh mjnjq ggqlkpr sqdsxhb qldrh bdghf dvqsf rqhp ffpq zqhxc prkpfnh cfkdn gsmvb vtjmvd qsvfk vpzhpnx tqgd ptn xzb qks hctzvvc xlttl drvxr rrjt cvdvd lkdg hmrh cspz xpk cmfj kggl zgcrp mdrn kpbg tnhjq dnlsjr ndfmx chsprq tfdl qmvzln stcctv htfvt zrlpbh fmgnz dgvqv (contains sesame, shellfish)
pmvgd lkdg fktqdh sqdsxhb xsvjb rrhsh ptn drvxr qsndg tqgd hctzvvc cqgqxq dlj ppjrrm fmgnz mhjg szd nrgcrd tvkvmms lfrq zfrn hmcc szvsg ddbss qdccb lczvhs stcctv gdg cvrzmd xdjz dxqbf bdghf qmvzln dnlsjr rsvlb lxfbmt vtjmvd mbbz qthvbf ndfmx csnfnl qdccgvb xdrm sdvc dgvqv cvdvd xzb qklrs rhvglf qks kfl czd fbj rnpjxc cfkdn zgfr ppfmb bcthd qdgdsg jgnxfn pcg (contains soy, fish, eggs)
srhmt vtjmvd bhpn pcg rrjt jzktf tsqp cfzcl qdms vgqd dgvqv qxrm zrlpbh tqgd ssjpd lrgxlct bplgpn ptbvs hmrh lkdg szvsg rfdxph bfjlcv hjpv pbhthx nllmj nrsb prg ghrnk pdzqrqq zfrn qthvbf lzbfz kpbg phh kxkzv vsvmt ppjrrm vfpmcdc xmnqb dlj prspxdl htfvt xsvjb ddbss dtpcd hgmq jzlht xlttl dsjrv chsprq blcb tvkvmms sqdsxhb vbdsgx stcctv gsmvb qks dnlsjr jfzd bfkm qdgdsg msdgp csnfnl dvh mxqht zbs rsvlb cvdvd qdccgvb gdg cspz xdlhgf (contains wheat)
mpnd dnlsjr nlmsj ptbvs xdlhgf jlhv rqhp blgxsl bhrjc rsvlb mbbz pmvgd rhqfkmn zgfr hmcc hnnk bfjlcv pbhthx xdrm dgvqv bdghf rvmx jgnxfn phh lkdg fsgj mdpqq hjpv rrjt lxfbmt tqgd qgxj ppjrrm jfzd bbztv qks gsmvb xdjz mmr csnfnl hfl chxkn cvdvd vgqd xzb txnxdd hhxrrr lfrq snngn lczvhs ftzgp hctzvvc nrgcrd ctfdj (contains fish, soy)
ghrnk jsxqj qsndg xdlhgf mxqht vfpmcdc pbhthx mjnjq mppxj chmmqq xsxkj qgxj dnlsjr kfl csnfnl hcgh pdzqrqq hgmq vsvmt dvh vtjmvd xzb kdkrhr zgfr gjbfmm dxqbf qdms hmrh jcnglmz bqdbr rsvlb lkdg hhxrrr ffpq cfkdn dptx prspxdl gbnj xtnz qsvfk nrsb mdrn qksrp jzlht mdpqq jzktf cspz dxn jtl bmtn lzbfz ppfmb hnnk tltxb rrhsh bhrjc hfl kbfqvxf vgqd cvrzmd lmfccx rrjt hmcc qdccb lxfbmt qthvbf tcph tvkvmms rdnvlt hjpv ftzgp sqdsxhb drchk (contains eggs)
-53
View File
@@ -1,53 +0,0 @@
Player 1:
21
48
44
31
29
5
23
11
12
27
49
22
18
7
15
20
2
45
14
17
40
35
6
24
41
Player 2:
47
1
10
16
28
37
8
26
46
25
3
9
34
50
32
36
43
4
42
33
19
13
38
39
30
-1
View File
@@ -1 +0,0 @@
871369452
-419
View File
@@ -1,419 +0,0 @@
eeneseeeneeseweeeneswneenwwee
swswswneswwseenwsenwsweswse
wswswswnweswnwswswwwswswswweswswswsew
seswswnweswswswseseseswswswswswswseswse
nwswswswswseseswseseswswswswseswswsenwsw
nwnwnwnwnenesenwneneswswwswnenenwnwnw
ewwwwwswswwwwwnwnewwwwwww
nwswneewwwsewnwswnwneswnenwnwsenweswnw
seseseseseseeswsesenweswwseswseseswse
wwnwwsewenwsww
nwnwsenwnwenwnwnwnwwwnwnwnwwnwswwnw
wwwnwwwesewwwwwwwwweww
swenwwswswswseneneneseswswnwnenwswee
eseeseseseeeswseeneweneeeseese
nwswswnwnwswsweeweseswswswseswswsesee
swswswwseswnenwneneswseseswsweseswswnw
nwnwnenwnenwnenwneswnw
eeeweneweeseneeneeeseeeeee
nenenenwneneneneneneeneneneswnenenenene
wwenwswwnwsenwwsenenenwnwsw
nwnewnwnwnwnwnwnenwsenwneewnwnwsenwwse
swwnewwsenwwswwwwswwswswse
senwswseseswswseseswseswswsewswseswsesee
swswweswnwswwswwswwswswswww
wwwwswwnwwwwwnenwewnwwwnwnww
wewwweswneswswseseswwnewwsenenw
senwsesesesesesenwswseseseeseseseseseswse
seseseswswswswseswseesesesenwse
swnwswswswsweswseswswswswswswswsw
wewwenewnwnwwewwweswnwswsww
wwsenesewwwwwnewswwwwswnwwwsw
nwsenenenewenwnwnenwnenwnwnwnwnwnwnene
wenwweswswewnenwswnwswwwsewnesw
swnwwswneswneeswsesenwseswnwseseneseseswsw
nesenwnwnenenenwnwnwnenwnwnwnwwnenenenw
eneswswneeseenenwweeeeweeeee
swneneneneeneneneweneneneneneneneneseene
nesenwsewewseswseseseseswseneswnesene
nwnewewneswwsewwwwsewsewwnew
eeweeeeeeeeeeeneeeeeswe
nwswwnwsweswnwnwseewnwnwwneewsew
neswswsewswswseswsenwswswneseesww
eenwnwwenwswswswneseseseneeweenwsw
seseswswseswnwseseswsesewswseseseseneswe
sewwnwnwswnwnwnwwwnwnwnwewnwwnww
sewswwswwnwnesewswwswnwesewswwnw
seswswseseswsenwswseswseswseswseswswesw
wseneseseswseswseswseswseseseswsesenwsese
eseeneswwswnwnwse
swswswswsenwseswswswseesesesw
wswswswwneswswswswsweswswwswnwwswswsww
nwnwnwneswneswswnwnwneswnwnenwnwseenwe
swsesewnwseseseeswswswseseseseseseswsese
senwsenwnwnwnwnwnwnwnwnwwnwnwnwnewwnwnwnw
nweeesweeseenweneesenweseswwse
sesesewseneewseseeeseeeesee
sweswswswnenwswswswnwseswsewswswwee
nwwwsewseeseneseesesewseneseenee
nwnenenenwswneneneneenenenene
seswwseseseseseseseseseswseesesesesenw
neneswnwneneenenenwneneswnwnw
seseseeeswewneneswnwswwsenwesewnee
swwseswseswwsweswswneswswswseseswsw
neneewewneneneneeewneeenenesee
seneeseseeseesenweseseseseseswseseese
nenwwwwwswswwwwnwwwwwnwewww
swswswswswswswswnewnwswswswseeswswswsesw
seseeeseswsesesesesesewsenewsesenwswse
swswswswswsweswswwswnwnwneswwsweseswsw
nwsweswnwnwnwnenenwnesenwnwnwnwwnwnwnwwse
seseseseseseseseesesenwwseeseneseesese
weneseseeseseswsweseneneneesesweswne
seseseswseswesesenwsesesesesesesesesewne
neswnwnwnwnewnewseenwnwswsenwnwnwnwsw
neswnwnewneswewseeneneneneneeeeenee
nwnwnwwnwenwwswneww
nwenwnwswwnwnwwnesenwswnwnwnwnwsenwnwenw
seseswswswswnwswswswswswnwsweswseseswswswse
neneenenwneseneneneneseneeneneneenwnene
ewwnwnwwwwwwwwwww
nwnenenwneseneneswsenewnenenwsenwnenwnene
wsesewwnenenwswnwwweewsenwnw
nwnwsesenwenwnwwwnwwsenwnewnwnenwsesw
swswwsesesewwneeswseneswwneswneswswne
enwnwswnweswswnwenwnwnwnwnwnwnwnwnweswnw
eseeswnwnesewseneeenwsesenwsewswwne
neswwseneswseweswseswswnwnese
wwwneswwswwwwswwwnewwwwwww
nenenwnenenenenwneneswenenwnenene
neneswnwneswwswnwnesenenenenenwnenwnenenw
wnenenwsenwnenwnenenwnwnenwnwnwsenenewne
wnwnwnwnwnwwnwsenwnwnwnwnwnwnwnw
eswseswswseswswsweswnenwswswswswswswnwsww
wswwseseseseswseseseseseseswseneseseese
seeseeeseseseseenwsesesesesenweseesw
eswnwseswsenwswwnenwswswswnesweswswwsw
neeseenewneneesw
nwenenewswseeneswenewswnwseswwwene
wswwenwwenwseeswnewswsewnwneseswwne
eseswseesewseseseenwesesese
nenenenenweneneswnewnenenenenenenenwne
seseneneeseswwseneseswnwneseseeenwesw
seeswseeeeswnweeeeenweeweee
seeeenweseseseesesweenweseneee
neneewnwneneseneswnesenenwenenwnenesw
nwnewnwenwnwnwswnenwnwnwnwnwnwnwsenwnwnw
ewsweswseswswswwewneswwwswesww
eneeseseeeeseseswwseeseseseeene
nwsesesewwnwnewnesenwnewwseseenew
sewswswswseseswswswseswseswswswneeswnwswe
neswneswnenenenenewnesenwnwnenwneswnenenene
nwnwnwnwnesenwwnwnwnwnenwnwswnwnwwnwnwnw
swseseseswswsewneswsenesenwenenwseseese
neswseseseswseswsesesewsesesesese
seseeeswnwseeeswseseseesenwseseee
swneswswswwswsenwswswswseswswswswseswswswsw
wsenwswwwwswswww
nwseswseesewseeswsewswnenesenwsew
nesweeseeweenenenweneswnenenee
wnwwwnwwwswnewwnwnwwewnwnwnww
wnwnenwswswnwnwsweesenenweswnewenw
seeseesenwseseseeeseseeseeseese
swseswswwswenwswswswswswswnenwswswswswse
eswseswwwnewwsewwwwwswswenesw
wnwnwswwnwnwswnwnwnenwwwwnwnwnweeww
seswwseswnesweswswseseswswseswseswswswse
nwnenwnwneneneneswneneswnwswnenenwneeneswne
swwwewswwnwwewwswwswswwswwwsw
seneenwswwseeseseneewenwseneswnewe
wwsenesesesenewewnesweseewsesw
nwwswwwesewwwwwwnwwwwwwwnww
newwnwwnenwwswsesewswseseewwnwwwsw
newswswseswswswwswswwswsww
eeesenweeeenweeesenwseeeenee
ewenenesewseswseweseeeeseeseese
eeeeeneeeeeeseeswenwnweeeee
wwnewnwenewewsewseseneweswswne
wnwwswneneneneseneseneweseenwneseneee
swewnwwnwnwneseneewneneneneene
enwnwseeneeneneeeneneeeneeswnene
sewswseneswwseeswneswseswnesenw
nenenwnenenwseneneneneseswnenenenewnene
eseseseseeeseeseseeseenwsesesenewsw
newenewnesweeeswneeeseenwnenee
wswswsenwswswsweswneneswswswswswsesesw
wsesenwsesesewsesesenesesesesenesese
eseswswseswswswswnwswswsenenwswseswswsesw
nwsewsewswswwwnwsenewnwwwwnwew
seeseeweewwsenwwneneneeswesewne
nwsweseswseseseswneeseseswnwseswsenesw
seswswswwneswsesenesewswnenwswswseswwse
seeseweseseneswnwseseseesweenwsenw
sweswseswwwswnwswnenwwsewswwnwswsw
eeeeeeeneswneneeneeswnweenwnese
nwwwnwnwwwsewnwwswnwnenwnwwwww
swswseseswswsenwswswswneseseswsewseswswsee
eseeeseseeseseewsenenwewsese
wwwwwwwwnwswwnwwewwwwnww
wneenesesenenwwnenwnwneswsenenweswne
wswnewwwwwwwwww
enenwnenenwnwnwnwnwnwwnenw
nenweswswswnenwnenwseneeswesewnenenew
neeneneswnenwneswsweeneneeneenwnenene
sesesesesesesesenwnwesesesenwwesesese
wswwswswswwnwnwwseswswwswswsew
nwneseewnwnwnenwnewnenenenwnenwnenwnenw
neeeneeeneeeneeeneenesweneenew
seswneswsenwesesesewseswseswsesewsesw
neswnenesenenwneneneswnenenenenenenenenene
neswwswswnwswswswswswsesweswswswswswsw
enwwswnwnwwnwnwnenwnwsenenwnwwnwnwnw
swnwswwswswswswesweswseseswswseseswsw
wsenenwsenwnewsenwnwnwsw
nwnwenwsewwswwnwweswnwsewsewnesew
nwnwenwnenwnwnwwnwnenwnenwnw
newneweneneneenenenwnw
swenesesenesesesesesewseneswsesesesese
swneneneneseeseeneeseeneewswwwww
nwnwnwenwnwnwnwwnwwwnwnwnenwnwswnwse
nwnenwneneswesenwswsewnenwnwnwnenwswese
seseswswswswsweseseseswnwsesw
nwenenwneneneneneenenenesweneneswnenene
nenwwwnwsenwnwnwnwnwsenwnwnwnwnenwnwnwnese
neneeeeweneeneneswnwnenenwneneswne
wwwneswnwnwnwwnwnwewnwnwwwwsenew
eenweeeeeesweeeeeee
eneweseseeeswewsewseswsenwesenw
nenenwnenenenwseswsewnenenwneswnw
nwwwswnwswnwnenwwenwnwnwnenwswnwnwnw
eswseneeeewenweeseswsewseenee
wswswnwneseswseseneswsww
sewwwwwnwwwwwnenwwwwwnwwnw
enwnwnwwwnwwsenwsewnwwsewswwnwwnw
swseswenwenewnesweseswnewsenwseswwwsw
nwswwnwnwnwnwenwnwwnwnwwwnwnwnwnww
wenwswnenenenenenwne
swwwnwnwwwwnwewwwwnwnwenwnwnw
nwswneswneswsenenesenenwnwwnenwnwneene
neneswneweneneeeweneneeeenenwene
neenweneswnwneneneneneneneneswnenenwnenene
wswnwwwwnwwnwweeswnwwnwwwew
eweneeswneneneeeeeeeeeeew
seeneeseseseswswsenwnwseneeesweee
eneeneseenesenenenenenenwwwneeneswse
swseneenenenenenenesenesenewwnwnenene
swnenweeeeeneeewswenwenwswewsene
eswnwnwwnwnwswseewnesenwwnweseww
nwnewseewnwwwwnwnwswnwnwnwnwnwwnw
nwnwneenenesenwnenenenenenenwnenwswnew
swwswnewewwwwwwwwewwnwwwsw
eeseseseeeeeseenweeeeswe
nwnwnwweswnwenwnwnwnwnwnwnenwnwnewnw
swwsweneswsewnwwswswwsweenwsww
neswneneswseswenenenenenenwnwnwnesw
wwwnwswwwswneewwwnwnwewwwe
enesewnwwsesenenewwwwsw
neneneswnenenenenenesenenenenenenwswnwne
seswseseswsesweseseswswnwseseswswsesesw
nwnwnwnwsewwnwwnwwnwwnenwnwnwnwnw
seeeeeenewneeswneeeenesenwnene
wwewwwwwwwwwwwwnwsewnw
seseswseseseneesesewsenese
sesweseswsesesewwseweeseseseenwsw
neswseswswwswswseswswswswswwwneswwsw
ewseneseeneswseeesesw
swswwnewnwswneswnwwnewsesewswswswwe
nwnwnwnwnwnenwnwnwnwnwnesenwnw
swnwewsenwwwwwswsewnwneenwnwwnww
swswswseseswseseswnwsewswsesesesenesw
neenenwneneneneneeeeeneeeneeswese
eneeeneneeneeswswnee
swnewswwwswswswswswswswswnwseswsenewswsw
swseswsesweswsewswswseswseseneswswswsww
swenwnenewswnewwsewnwenwnwswnwswwnew
swswwwsenwwnwswsewnesewwnwnenene
weneneeneswnweeweeswweeswnesw
nwswsenenwesenwnwsenwsewenwswnwnwnwnew
nesweenwneeeswwneneneeneeneenwenee
nesesweswswwswswseswswseseswswseseswsw
eeewswnweesweeeseenenenenewee
sewwsesesesenenwseneseseseseseesewsesw
nenewsewnwnwnwneneswnenenenesenwenw
sewwwwswwsewwwwnwnwwwwwwwsw
sesewwseseseseseseseseneeseseeeseese
neneneewwnenenenenenwneneseeesenene
eseeeneneenweeeeeneeee
enwswnwwswenwneewswnwswwseseswseenew
nwnwnwnenwnwnwwnwnwnwnwnwwnwnwnwsenwnw
seswswswenwnwswswswseenewswneneswwsw
wswswwwewwnwswswswnwwesewwsww
seseseeseseseseseeseswseswnesesenwsesese
swnenwswsewwsewswnwswswswnwneenesee
nwnwwsenenwnenwnwnwnwwnwnwswnwnwnwnwnw
senwwswnewwsenewwwsewewwwwwww
wnwwwwnwsenenewwnwwewwnwwnwsenw
ewseewsewnwnenewwwwswwneewww
wnesenweenenweeswwenwesenesenee
eweneneneneweeeeeneswneneseesw
nwwsenewwnenwenwswewwwwseswwww
eewseseeeseeseeseneeseeeeese
wswwneswnwwnweenwnewwswnwnwwwnwwsw
nwswsenwwwnwwwwswnwwnwwnwenwwnenw
wsweswwswswwwwsewweswnwwwswww
neeeweenwneneeneeeseeeneeeeesw
swswswseswwswneesewswnwswseseseswsw
swwwwwnewwwwwwwwww
ewwwewwwwswneswwwwwnwwwwww
swwswswswwsesweswswswwwswseswswnewnw
nenwnwnenwnwnwnwnwnwnwnwnwnwswnenwnesenew
swswswswweswswswseswswswswswswwswnwsw
eeseeseeeeseseseseseeseeesenwnw
seseeseseseseneseseseseseseseseswsewnew
nwwnwnwswswenwnwnwsenwwswnwnwnwewnwnee
eeneswswneeeeeeeeeeeeenene
swswswnwswwswswswneswswswswneseswswswswsw
nenwnwnenwnwneswnwnwnenwnwnenene
swnwnwnenewenenwnenwsenenwnwnw
swswswswswnwwswswswswswnewwswsweswsw
swswsweswneswswswswwwswseswswswswwsww
neswnwswsenewnesenwenenenewnwnwnw
eeeeweewneeeeeeeeeeee
sewswswseseweeseseseeseswnenwenwsene
swswsenwswswswswswswseswswswnweswnwesw
wnesenweeneneneenesenewneeneneene
nwnwnwnwnwnwwnwnenese
wweeeneeeeeseseee
nwnenenwnwwnwnenenwnwnwnwesenenwneseswnw
eeeswenweseeeeeseeenewnwswe
enwneeweneeseswsenwnenwseneneneesw
seseseseseswsesewsewseneneseneneswsesw
seseseeseesenwseseesenwsweeesewse
neeeeeneswweewneeeseeeeenee
swswswwswswswswseswswneswswswwsweswswsw
swswswseswseswswswswswnewseseseswswswse
swwwwswswswswnweswswwswne
wwwnwnwwwwwnewwnwwnwnwnwnwsew
swswswswswswwwswseswnwneswseswnesw
nwneseswsenewnweneswsenenenenwnenene
seseeseseeseenweeseseeswswesesesenwe
neeneneweenewneneenwnweneseesweee
eneeseeseeswsweneeseseseesee
swnenwnwsenwseswsenwseenwswwsesenwsese
eseseeeeswseeeeenweeeeeee
eneeneeneeeeswesweeeeneeene
nwnwewwnwnenewsesenwnwnwnwseesewnww
swswswswswswseswswnwwswnewswseneswseswsw
nwnwnwnwnwnwnwnwwnwnwenwnwnwnwnwnwnw
sewswswswseneesesenweswnwswsesenwseesw
eneeeseesenwweseeneeweeew
nenenenenenenenwneneneneneneenewswe
wwwswwneswwnwenwwnewswnewsesww
wsewwswwnwwwewwnwnwwweswwse
nwesenwnwnwnwwsewenwnenesweneswwnwe
swneswnesweswnwwnenenweeew
nwnwwnwnwenwnenenwnenwenenewneswsenwnene
nwnwnenwsenwwnwwnwnwenwwnwnwwnw
neseseneswwswwseswswsweswseswseseseswsw
nenenenewsenwseenenewneswsenenewnenenene
seseseesesesesesesenwswsewseesesesesese
eneenenenewseseeeneenenwnenenenenenene
nwswnwswneswwseeswswswseswswswswswsww
swweswsewswwseseseswswswswseswswee
nwnenwenewwwnwnwnenenwenwnwesenwne
wwwwwswswewwswwwwwswsweswww
swswwnweseenwwnwwwswswwwseseswnwe
nwnwwnwwwnwenwswwwnewseswnwnwsene
wwwswwwwwswwseswswswnwneseswwsw
wwnwnwwwnwnwswenwnwnwnww
neneeeneswnewneeenenwswee
newnwnenenenwneneswsenenenenenewsesenenene
eseseeseseswwnwswsesenwwsenenwseseene
neneswnenenenwnenwnwne
wswwseswnenwwwswwwwwwwwswneww
seewwewwneeewesenwwnenwwnesesw
neneneneneneeneswnwnenwneneneneswwnwne
nwnwnenenwnenwnewnwsenenenenenenwneneenw
nwwnwnwenwnwnwnenwsenwnwnwnwnenwwnwnwe
swsewwnenenwneneneeneneswneenenenenwswne
eeneneeenesesweewsweenenenwnwenee
nenenwneneswseneneneeneeneneneenenene
wswwwseenenwsenwnesesenwneswnwnwwe
wseswswswwwswswswnwewswswswswswswswsw
nwswseswneneneeneswnenwswneneneneenenwe
sewnenenenenwseswnesenenwsenwnwnenenene
nwwwnwswwneeeewnwnwswewnwnwsenwe
seseseeeesewneseesese
nesenenenenenenenenewneneneseswnenenenew
nwswswswswwswswswwswswswswswswseswswswne
wwwwwsewwwnewwwwwwwwww
nenwnwnwnwneenwnwwnwswnenwswsenesewse
eeseseswseseeeeeeeeseseenesesenw
nwnenenwnwnwnwnwsenenwswnenwnenenwnenenwne
nwwenwnwnwnwnwnenwnenwnwnwnwnwnweswsw
nenwsenenenenenenenwnewnwenwnenenwne
nwwnwwnwseneeseseswnwneeeseeneenee
wewnwnewwnwwwwswwwnwwwseswww
neswseeseseseseseseswsewnwseswswswswsee
sewsesesesenwsenwenwwnesesenwnwse
seeeeneneeeneeeeewwneeeene
neneewwneeneeeeeneneeeeneeee
nwsesweswesesesesewswseseswswseswseseswse
wwnwnwwnwnwnwnwnwwwnenwwnwnwsenww
wnwsewnesweewsenwwenwnwenwwwse
wswwwewswwwwwwwswnweww
swswnwswswswswswnweneswnewneseseswswswne
weseseenwweeswenwseeenesewsenw
swswswswseneswswswswswswswneswswswwswswsw
senenenenwenesenewseenewswneneeene
swnwswseseseseesesewswseseseseseswnwe
neswswewwwewnwwwnwswwnwneewwwsw
swwnewnwweswswnesenwswewseswswseswsww
eseseweeneweeeeeeeenewsew
eeseenwsenwswseeesesesenwwsesenwsew
esweswwseesenenesesenwsesesenwseseee
senwswnwswnwnwswseswswswseseesw
nenwneneenenenewnenwnenenenenenenenesene
seeseeenenwewweesenwweneneeswe
wwwnewwwwwwwswwwwwwsw
neseswsenwseseseseseseswseseseswseseesw
neneeewsewsewenesewnesewsewsew
wwswwnwnwenwnwwnwwwenwwnwnwnenwse
nwnwswnwnenwwnwnwswneswenwwwswnwwe
enenwwneeeeeeeneneeeeeeeeswe
weeeeswesenwse
nwnwnewnwsenenenwnwnwsenwnwnwnwnewnwnwenw
swenesenewwwenenwsewswwwsewnwe
nwswwnwwnenwnewwsenewwwsewwnwse
nwnwnwwnwnwwnwsenwnwwwnewnwnwwwnwnese
seswswwwwwwswswswswswwnewwwww
neswwseenwwnwswseneeewswnwseneesww
seesweswenweseenwnwseswwnesenwwnwee
seseseseneswseseseseseswseseswenenwsese
seesenesesesenwwseseseseneseseseeww
eseseeseseeeseseseseeseseewsesene
wsewwwwwwnenwnwwwwwwnewwnwsw
eseswesenwseseeseeeeseseseeesee
neneneseeneneenewneneneneneene
neeseseseseeseseswseeee
seeeesesesweeesewseneseeesesee
enwweeeeeeeeeseeeeeeesee
wwwseswsewnewwnenewswswswswswwsww
seeewnweseswenenenweeeenee
nwsenwwwwnwnwswnwwwne
wesesewswswneeenwnweneenweneseesw
eeswswwnwswnwnwnwnwesenwwnwnwwnenwnw
nweenwseseneeenwseneenwneswneenee
nwsenwsenwnwnwnwnwwwnwnwnwnwnwnewnwne
seesewseeseseneseseseswsesesesenesese
swwseswnwwwswwswwswwew
enwneenenenewnewsenenenenenenesenene
swwswswwwwwwswneswwswwseswwsene
neenenenwnesweneewswne
nwnwwnesenwnwnwnwnenenenenenwnwnwnenwne
neeenesewwnwsenwswseseeseneswsewsesw
newwnwswswnewswwswwswswwwsewww
wsewwneenwwww
wswwnewwwwwwwwww
wwwwswwwswwnwswewwwswswwww
swseswswswswseseseswseeswswsenwsesw
-2
View File
@@ -1,2 +0,0 @@
1327981
2822615
@@ -1,6 +0,0 @@
org.slf4j.simpleLogger.logFile=System.out
org.slf4j.simpleLogger.showDateTime=true
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
org.slf4j.simpleLogger.defaultLogLevel=info
org.slf4j.simpleLogger.log.io.micronaut=info
org.slf4j.simpleLogger.log.io.micronaut.context.lifecycle=info
-112
View File
@@ -1,112 +0,0 @@
package be.vandewalleh.aoc.days
import java.util.concurrent.TimeUnit
import kotlin.math.pow
import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole
import org.openjdk.jmh.runner.Runner
import org.openjdk.jmh.runner.options.Options
import org.openjdk.jmh.runner.options.OptionsBuilder
/*
Benchmark Mode Cnt Score Error Units
Day14Benchmark.charArrays avgt 5 0.038 ± 0.001 ms/op
Day14Benchmark.countReplacePad avgt 5 0.044 ± 0.002 ms/op
Day14Benchmark.stringBuilders avgt 5 0.082 ± 0.005 ms/op
*/
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Benchmark)
@Warmup(iterations = 3)
@Measurement(iterations = 5)
open class Day14Benchmark {
private val mask = "1XX10X10100X1010X1000100X0X10X001X00"
private val address = 43398.toString(2).padStart(36, '0')
@Benchmark
fun stringBuilders(blackhole: Blackhole) {
val mutationCount = mask.count { it == 'X' }.let { 2.0.pow(it.toDouble()).toInt() }
val mutations = Array(mutationCount) { StringBuilder(36) }
var groups = 1
for (i in mask.indices) {
when (mask[i]) {
'X' -> {
groups *= 2
val groupSize = mutationCount / groups
var currentChar = '1'
for (b in mutations.indices) {
val builder = mutations[b]
val flip = b % groupSize == 0
if (flip) currentChar = if (currentChar == '0') '1' else '0'
builder.append(currentChar)
}
}
'1' -> mutations.forEach { it.append('1') }
else -> mutations.forEach { it.append(address[i]) }
}
}
blackhole.consume(mutations)
}
@Benchmark
fun charArrays(blackhole: Blackhole) {
val mutationCount = mask.count { it == 'X' }.let { 2.0.pow(it.toDouble()).toInt() }
val mutations = Array(mutationCount) { CharArray(36) }
var groups = 1
for (i in mask.indices) {
when (mask[i]) {
'X' -> {
groups *= 2
val groupSize = mutationCount / groups
var currentChar = '1'
for (b in mutations.indices) {
val builder = mutations[b]
val flip = b % groupSize == 0
if (flip) currentChar = if (currentChar == '0') '1' else '0'
builder[i] = currentChar
}
}
'1' -> mutations.forEach { it[i] = '1' }
else -> mutations.forEach { it[i] = address[i] }
}
}
blackhole.consume(mutations)
}
@Benchmark
fun countReplacePad(blackhole: Blackhole) {
val bitCount = mask.count { it == 'X' }
val mutationCount = bitCount.let { 2.0.pow(it.toDouble()).toInt() }
val results = Array(mutationCount) { CharArray(36) }
repeat(mutationCount) { i ->
var count = 0
val result = results[i]
val currentMask = i.toString(2).padStart(bitCount, '0')
for (j in address.indices) {
result[j] = when (mask[j]) {
'X' -> currentMask[count++]
'1' -> '1'
else -> address[j]
}
}
}
blackhole.consume(results)
}
}
fun main() {
val opt: Options = OptionsBuilder()
.include(Day14Benchmark::class.java.simpleName)
.forks(1)
.build()
Runner(opt).run()
}
-39
View File
@@ -1,39 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.factory.createDay
import java.util.concurrent.TimeUnit
import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole
import org.openjdk.jmh.runner.Runner
import org.openjdk.jmh.runner.options.Options
import org.openjdk.jmh.runner.options.OptionsBuilder
/*
Benchmark Mode Cnt Score Error Units
Day16Benchmark.part2 avgt 5 0.697 ± 0.026 ms/op
*/
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Benchmark)
@Warmup(iterations = 3)
@Measurement(iterations = 5)
open class Day16Benchmark {
private val day16 = createDay<Day16>()
@Benchmark
fun part2(blackhole: Blackhole) {
blackhole.consume(day16.part2())
}
}
fun main() {
val opt: Options = OptionsBuilder()
.include(Day16Benchmark::class.simpleName)
.forks(1)
.build()
Runner(opt).run()
}
-44
View File
@@ -1,44 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.factory.createDay
import java.util.concurrent.TimeUnit
import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole
import org.openjdk.jmh.runner.Runner
import org.openjdk.jmh.runner.options.OptionsBuilder
/*
Benchmark Mode Cnt Score Error Units
Day18Benchmark.part1 avgt 3 0.253 ± 0.098 ms/op
Day18Benchmark.part2 avgt 3 0.283 ± 0.027 ms/op
*/
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Benchmark)
@Warmup(iterations = 1)
@Measurement(iterations = 3)
open class Day18Benchmark {
private val day18 = createDay<Day18>()
@Benchmark
fun part1(blackhole: Blackhole) {
blackhole.consume(day18.part1())
}
@Benchmark
fun part2(blackhole: Blackhole) {
blackhole.consume(day18.part2())
}
}
fun main() {
val opt = OptionsBuilder()
.include(Day18Benchmark::class.simpleName)
.forks(1)
.build()
Runner(opt).run()
}
-22
View File
@@ -1,22 +0,0 @@
package be.vandewalleh.aoc.days
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.CsvSource
class Day18Test {
@CsvSource(value = [
"1 + 2 * 3 + 4 * 5 + 6 , 231",
"1 + (2 * 3) + (4 * (5 + 6)) , 51",
"2 * 3 + (4 * 5) , 46",
"5 + (8 * 3 + 9 + 3 * 4 * 3) , 1445", // !!!
"5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4)) , 669060",
"((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2 , 23340"
])
@ParameterizedTest
fun examplesPart2(input: String, output: Long) {
val day18 = Day18(listOf(input))
assertThat(day18.part2()).isEqualTo(output)
}
}
-7
View File
@@ -1,7 +0,0 @@
plugins {
id("aoc")
}
application {
mainClass.set("be.vandewalleh.aoc.days.MainKt")
}
-1
View File
@@ -1 +0,0 @@
target area: x=20..30, y=-10..-5
-1
View File
@@ -1 +0,0 @@
target area: x=139..187, y=-148..-89
-42
View File
@@ -1,42 +0,0 @@
import nre, strutils
let
regex = re"x=(-?\d+)..(-?\d+), y=(-?\d+)..(-?\d+)"
data = readFile("input.txt")
captures = data.find(regex).get.captures
x1 = captures[0].parseInt()
x2 = captures[1].parseInt()
y1 = captures[2].parseInt()
y2 = captures[3].parseInt()
minX = min(x1, x2)
maxX = max(x1, x2)
minY = min(y1, y2)
maxY = max(y1, y2)
proc land(dx: int, dy: int): int =
var dx = dx
var dy = dy
var x = 0
var y = 0
var high = y
while x < maxX and y > minY:
x += dx
y += dy
if dx > 0: dx -= 1
elif dx < 0: dx += 1
dy -= 1
high = max(high, y)
if x in minX..maxX and y in minY..maxY:
return high
return -1
var high = 0
var match = 0
for x in -1000..1000:
for y in -1000..1000:
let res = land(x, y)
if res != -1: match += 1
high = max(res, high)
echo(high)
echo(match)
-29
View File
@@ -1,29 +0,0 @@
package be.vandewalleh.aoc.days
class Counter<K> : Iterable<Map.Entry<K, Long>> {
private val map = HashMap<K, Long>()
operator fun get(key: K) = map[key] ?: 0L
operator fun set(key: K, count: Long) {
map[key] = count
}
operator fun set(key: K, count: Int) {
if (count == 0)
map.remove(key)
else
map[key] = count.toLong()
}
fun toMap() = map.toMap(HashMap())
override fun toString() = map.toString()
fun minValue() = map.minOf { it.value }
fun maxValue() = map.maxOf { it.value }
override fun iterator() = toMap().iterator()
companion object
}
operator fun <T> Counter.Companion.invoke(items: Iterable<T>) = Counter<T>().apply { items.forEach { this[it] += 1 } }
-27
View File
@@ -1,27 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day01 : BaseDay() {
private val items by lazy { input.lines.ints }
override fun part1(): Int {
var count = 0
for (i in 0 until items.size - 1) {
if (items[i] < items[i + 1]) count++
}
return count
}
override fun part2(): Int {
var count = 0
for (i in 0 until items.size - 3) {
val a = items.drop(i).take(3).sum()
val b = items.drop(i + 1).take(3).sum()
if (b > a) count++
}
return count
}
}
-40
View File
@@ -1,40 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day02 : BaseDay() {
private val lines by lazy { input.lines.value.map { it.split(' ').let { it[0] to it[1].toInt() } } }
override fun part1(): Int {
var horizontalPosition = 0
var depth = 0
lines.forEach { (direction, value) ->
when (direction) {
"forward" -> horizontalPosition += value
"down" -> depth += value
"up" -> depth -= value
}
}
return horizontalPosition * depth
}
override fun part2(): Any {
var horizontalPosition = 0
var depth = 0
var aim = 0
lines.forEach { (direction, value) ->
when (direction) {
"forward" -> {
horizontalPosition += value
depth += aim * value
}
"down" -> aim += value
"up" -> aim -= value
}
}
return horizontalPosition * depth
}
}
-36
View File
@@ -1,36 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day03 : BaseDay() {
override fun part1(): Int {
val moreOnes = input.lines.value[0].indices
.map { i -> input.lines.value.map { it[i] } }
.map { it.count { it == '1' } >= it.size / 2 }
val gamma = moreOnes.joinToString("") { if (it) "1" else "0" }.toInt(radix = 2)
val epsilon = moreOnes.joinToString("") { if (!it) "1" else "0" }.toInt(radix = 2)
return gamma * epsilon
}
override fun part2(): Any {
val o2 = findNumber(input.lines.value) { ones, zeros -> if (ones >= zeros) '1' else '0' }
val co2 = findNumber(input.lines.value) { ones, zeros -> if (zeros <= ones) '0' else '1' }
return o2 * co2
}
private fun findNumber(input: List<String>, keep: (Int, Int) -> Char): Int {
var numbers = input
for (i in this.input.lines.value[0].indices) {
if (numbers.size == 1) break
val eachCount = numbers.map { it[i] }.groupingBy { it }.eachCount()
val ones = eachCount['1'] ?: 0
val zeros = eachCount['0'] ?: 0
val maj = keep(ones, zeros)
numbers = numbers.filter { it[i] == maj }
}
return numbers[0].toInt(2)
}
}
-33
View File
@@ -1,33 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day04 : BaseDay() {
private val numbers by lazy { input.lines.value[0].split(',').map { it.toInt() } }
private val boards by lazy {
input.text.split("\n\n")
.drop(1)
.map { it.lines().map { it.trim().split("\\s+".toRegex()).map { it.toInt() } } }
}
private val results by lazy { boards.map { playBoard(it) } }
override fun part1() = results.minByOrNull { it.first }!!.second
override fun part2() = results.maxByOrNull { it.first }!!.second
private fun playBoard(board: List<List<Int>>): Pair<Int, Int> {
for (round in numbers.indices) {
val usedNumbers = numbers.take(round)
for (line in board + board[0].indices.map { col -> board.map { it[col] } }) {
if (usedNumbers.containsAll(line)) {
val unmarkedNumbers = board.flatten().toMutableSet().also { it.removeAll(usedNumbers) }
return round to unmarkedNumbers.sum() * usedNumbers.last()
}
}
}
error("No wins")
}
}
-50
View File
@@ -1,50 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day05 : BaseDay() {
data class Point(val x: Int, val y: Int)
private val re = "(\\d+),(\\d+) -> (\\d+),(\\d+)".toRegex()
private fun path(start: Point, end: Point): Sequence<Point> {
val dx = end.x.compareTo(start.x)
val dy = end.y.compareTo(start.y)
return generateSequence(start) {
if (it == end) null
else Point(it.x + dx, it.y + dy)
}
}
override fun part1(): Int {
val visited = HashMap<Point, Int>()
input.lines.value
.map {
re.find(it)!!.destructured.let { (x1, y1, x2, y2) ->
Point(x1.toInt(), y1.toInt()) to Point(x2.toInt(), y2.toInt())
}
}
.filter { (start, end) -> start.x == end.x || start.y == end.y }
.flatMap { (start, end) -> path(start, end) }
.forEach { visited.compute(it) { _, value -> (value ?: 0) + 1 } }
return visited.values.count { it >= 2 }
}
override fun part2(): Int {
val visited = HashMap<Point, Int>()
input.lines.value
.map {
re.find(it)!!.destructured.let { (x1, y1, x2, y2) ->
Point(x1.toInt(), y1.toInt()) to Point(x2.toInt(), y2.toInt())
}
}
.flatMap { (start, end) -> path(start, end) }
.forEach { visited.compute(it) { _, value -> (value ?: 0) + 1 } }
return visited.values.count { it >= 2 }
}
}
-27
View File
@@ -1,27 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day06 : BaseDay() {
override fun part1() = run(80)
override fun part2() = run(256)
private fun run(days: Int): Long {
var fish = LongArray(9)
input.csv.ints.forEach { fish[it] = fish[it] + 1 }
var newFish: LongArray
for (day in 1..days) {
newFish = LongArray(9)
for (timer in 8 downTo 1) {
newFish[timer - 1] = fish[timer]
}
newFish[8] = fish[0]
newFish[6] = fish[0] + newFish[6]
fish = newFish
}
return fish.sum()
}
}
-28
View File
@@ -1,28 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
import kotlin.math.abs
@Day
class Day07 : BaseDay() {
override fun part1(): Any {
val ints = input.csv.ints
return (ints.minOrNull()!!..ints.maxOrNull()!!).minOf { target -> ints.sumOf { abs(it - target) } }
}
private fun calc(position: Int, target: Int): Int {
val diff = abs(position - target)
var sum = 0
for (i in 1..diff) {
sum += diff - i + 1
}
return sum
}
override fun part2(): Any {
val ints = input.csv.ints
return (ints.minOrNull()!!..ints.maxOrNull()!!).minOf { target -> ints.sumOf { calc(it, target) } }
}
}
-49
View File
@@ -1,49 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day08 : BaseDay() {
override fun part1() = input.lines.value
.map { it.split(" | ")[1].split(" ") }
.sumOf { it.count { it.length in setOf(2, 3, 4, 7) } }
override fun part2() = input.lines.value
.map { it.split(" | ").map { it.split(" ") } }
.sumOf { (pattern, digits) ->
val patterns = decodePatterns(pattern)
digits.map { patterns[it.sortChars()] }.joinToString("").toInt()
}
private fun decodePatterns(patterns: List<String>): Map<String, Int> {
val result = Array(10) { "" }
result[1] = patterns.single { it.length == 2 }
result[7] = patterns.single { it.length == 3 }
result[4] = patterns.single { it.length == 4 }
result[8] = patterns.single { it.length == 7 }
val frequency = patterns.flatMap { it.toCharArray().toList() }.groupBy { it }.mapValues { it.value.size }
val a = (result.letters(7) - result.letters(1)).first()
val b = frequency.findKey { it.value == 6 }
val c = frequency.findKey { it.value == 8 && it.key != a }
val d = frequency.findKey { it.value == 7 && it.key in result.letters(4) }
val e = frequency.findKey { it.value == 4 }
val f = frequency.findKey { it.value == 9 }
result[0] = patterns.find { it.length == 6 && d !in it }!!
result[2] = patterns.find { it.length == 5 && b !in it && f !in it }!!
result[3] = patterns.find { it.length == 5 && b !in it && e !in it }!!
result[5] = patterns.find { it.length == 5 && c !in it && e !in it }!!
result[6] = patterns.find { it.length == 6 && c !in it }!!
result[9] = patterns.find { it.length == 6 && e !in it }!!
return result.mapIndexed { index, value -> value.sortChars() to index }.toMap()
}
private fun Array<String>.letters(number: Int) = this[number].toCharArray().toSet()
private fun <K, V> Map<K, V>.findKey(predicate: (Map.Entry<K, V>) -> Boolean) = entries.find(predicate)!!.key
private fun String.sortChars() = toCharArray().sorted().joinToString("")
}
-36
View File
@@ -1,36 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
private data class Point(val x: Int, val y: Int)
private fun Point.adjacents() = listOf(copy(y = y - 1), copy(x = x + 1), copy(y = y + 1), copy(x = x - 1))
@Day
class Day09 : BaseDay() {
private val map by lazy {
input.lines.value.flatMapIndexed { y, line ->
line.mapIndexed { x, value -> Point(x, y) to value.digitToInt() }
}.filterNot { it.second == 9 }.toMap()
}
private val lows by lazy {
map.keys.filter { point -> point.adjacents().mapNotNull { map[it] }.all { it > map[point]!! } }
}
override fun part1() = lows.sumOf { map[it]!! + 1 }
override fun part2() = lows.map { low ->
val visited = HashSet<Point>().apply { add(low) }
generateSequence(hashSetOf(low)) {
it.asSequence()
.flatMap { it.adjacents() }
.filter { it in map }
.filterNot { it in visited }
.toHashSet()
.also { visited.addAll(it) }
.ifEmpty { null }
}.flatten().count()
}.sorted().takeLast(3).fold(1) { a, b -> a * b }
}
-56
View File
@@ -1,56 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day10 : BaseDay() {
private val chunks = mapOf(
')' to '(',
']' to '[',
'>' to '<',
'}' to '{',
)
override fun part1(): Any {
val points = mapOf(
')' to 3,
']' to 57,
'}' to 1197,
'>' to 25137,
)
return input.lines.value.sumOf { line ->
val stack = mutableListOf<Char>()
for (char in line) {
if (char in chunks) {
if (stack.last() == chunks[char]!!) stack.removeLast()
else return@sumOf points[char]!!
} else {
stack.add(char)
}
}
0
}
}
override fun part2(): Any {
val points = mapOf(
'(' to 1,
'[' to 2,
'{' to 3,
'<' to 4,
)
return input.lines.value.mapNotNull { line ->
val stack = mutableListOf<Char>()
for (char in line) {
if (char in chunks) {
if (stack.last() == chunks[char]!!) stack.removeLast()
else return@mapNotNull null
} else {
stack.add(char)
}
}
stack.foldRight(0L) { char, score -> score * 5 + points[char]!! }
}.sorted().let { it[it.size / 2] }
}
}
-63
View File
@@ -1,63 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day11 : BaseDay() {
private data class Point(val x: Int, val y: Int) {
fun adjacents() = listOf(
copy(y = y - 1),
copy(x = x + 1),
copy(y = y + 1),
copy(x = x - 1),
copy(y = y - 1, x = x - 1),
copy(x = x + 1, y = y + 1),
copy(y = y + 1, x = x - 1),
copy(x = x + 1, y = y - 1),
)
}
private val map by lazy {
input.lines.value.flatMapIndexed { y, line ->
line.mapIndexed { x, value -> Point(x, y) to value.digitToInt() }
}.toMap()
}
override fun part1(): Int {
val map = map.toMap(HashMap())
var count = 0
repeat(100) { count += step(map) }
return count
}
private fun step(map: HashMap<Point, Int>): Int {
map.keys.forEach { map[it] = map[it]!! + 1 }
val flashed = hashSetOf<Point>()
while (true) {
val count = map.entries.asSequence()
.filter { it.value > 9 }
.filter { it.key !in flashed }
.onEach { flashed += it.key }
.flatMap { it.key.adjacents() }
.filter { it in map }
.onEach { map[it] = map[it]!! + 1 }
.count()
if (count == 0) break
}
map.entries.filter { it.value > 9 }
.map { it.key }
.forEach { map[it] = 0 }
return flashed.size
}
override fun part2(): Int {
val map = map.toMap(HashMap())
repeat(10000) { if (step(map) == map.size) return it + 1 }
return -1
}
}
-57
View File
@@ -1,57 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day12 : BaseDay() {
private val map by lazy {
HashMap<String, MutableSet<String>>().also { map ->
input.lines.value.map { it.split("-") }
.flatMap { (a, b) -> listOf(listOf(a, b), listOf(b, a)) }
.filter { (_, b) -> b != "start" }
.forEach { (a, b) -> map.computeIfAbsent(a) { HashSet() }.add(b) }
}
}
override fun part1(): Any {
val stack = map["start"]!!.map { listOf("start", it) }.toMutableList()
var i = 0
while (stack.isNotEmpty()) {
val path = stack.removeLast()
val node = path.last()
for (next in map[node]!!) {
when {
next == "end" -> i++
next[0].isUpperCase() -> stack.add(path + next)
else -> if (next !in path) stack.add(path + next)
}
}
}
return i
}
override fun part2(): Any {
val stack = map["start"]!!.map { listOf("start", it) }.toMutableList()
var i = 0
while (stack.isNotEmpty()) {
val path = stack.removeLast()
val node = path.last()
for (next in map[node]!!) {
when {
next == "end" -> i++
next[0].isUpperCase() -> stack.add(path + next)
else -> {
val hasTwoSmallCaves = path.filter { it[0].isLowerCase() }
.any { cur -> path.count { it == cur } == 2 }
if (!hasTwoSmallCaves || next !in path) stack.add(path + next)
}
}
}
}
return i
}
}
-44
View File
@@ -1,44 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day13 : BaseDay() {
private data class Point(val x: Int, val y: Int)
override fun part1(): Int {
val (nums, folds) = input()
val (axis, value) = folds.first()
return nums.toSet().fold(axis, value.toInt()).size
}
private fun Set<Point>.fold(axis: String, value: Int) = if (axis == "x") {
val (left, right) = partition { it.x < value }
left.toSet() + right.map { it.copy(x = 2 * value - it.x) }
} else {
val (top, bottom) = partition { it.y < value }
top.toSet() + bottom.map { it.copy(y = 2 * value - it.y) }
}
override fun part2(): String {
val (nums, folds) = input()
val all = folds.fold(nums.toSet()) { all, (axis, value) -> all.fold(axis, value.toInt()) }
val res = StringBuilder()
for (y in 0..all.maxOf { it.y }) {
for (x in 0..all.maxOf { it.x }) {
if (Point(x, y) in all) res.append('#') else res.append(" ")
}
res.appendLine()
}
return res.toString()
}
private fun input(): Pair<List<Point>, List<List<String>>> {
val gr = input.text.split("\n\n")
val nums = gr[0].lines().map { it.split(",") }.map { (x, y) -> Point(x.toInt(), y.toInt()) }
val folds = "([xy])=(\\d+)".toRegex().findAll(gr[1]).map { it.groupValues.drop(1) }.toList()
return nums to folds
}
}
-30
View File
@@ -1,30 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.BaseDay
import be.vandewalleh.aoc.utils.input.Day
@Day
class Day14 : BaseDay() {
private fun run(step: Int): Long {
val template = input.lines.value.first()
val pairs = input.findAll("(\\S+) -> (\\S)").associate { it[0] to it[1] }
val polymer = Counter(template.windowed(2)) // {NN=1, NC=1, CB=1}
val counts = Counter(template.toCharArray().toList()) // {N=2, C=1, ...}
repeat(step) {
polymer.forEach { (pair, value) ->
val (left, right) = pairs[pair]!!.let { m -> pair[0] + m to m + pair[1] }
polymer[pair] -= value
polymer[left] += value
polymer[right] += value
counts[left[1]] += value
}
}
return counts.maxValue() - counts.minValue()
}
override fun part1() = run(10)
override fun part2() = run(40)
}
-5
View File
@@ -1,5 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.runDay
fun main() = runDay()
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-601
View File
@@ -1,601 +0,0 @@
50,68,2,1,69,32,87,10,31,21,78,23,62,98,16,99,65,35,27,96,66,26,74,72,45,52,81,60,38,57,54,19,18,77,71,29,51,41,22,6,58,5,42,92,85,64,94,12,83,11,17,14,37,36,59,33,0,93,34,70,97,7,76,20,3,88,43,47,8,79,80,63,9,25,56,75,15,4,82,67,39,30,89,86,46,90,48,73,91,55,95,28,49,61,44,84,40,53,13,24
38 80 23 60 82
25 35 28 47 39
40 0 30 48 76
32 41 49 69 4
13 42 89 20 12
76 89 13 5 98
87 48 2 59 20
37 88 41 24 57
16 85 31 73 95
70 11 93 30 27
81 55 41 85 33
67 97 71 90 52
19 3 79 66 14
49 96 94 26 25
60 46 51 82 9
33 60 26 83 21
91 7 39 19 41
88 9 82 69 29
93 79 12 34 11
43 65 64 54 20
55 75 71 30 14
42 67 3 73 13
78 72 51 96 99
95 10 84 0 31
91 47 66 33 34
11 72 55 52 79
94 34 53 61 40
8 31 49 68 71
37 45 15 78 57
21 88 65 24 56
65 59 4 41 69
44 61 23 46 42
10 68 37 54 25
82 2 13 71 93
87 90 89 57 74
75 70 40 68 30
5 28 58 52 19
80 96 53 43 63
33 60 66 64 56
88 74 9 8 36
58 38 46 42 89
98 85 17 51 2
28 92 22 64 53
27 97 43 10 54
75 56 71 67 79
75 86 11 4 39
14 80 41 26 2
97 18 96 5 28
44 68 54 88 35
57 98 74 21 19
45 16 4 23 63
44 37 99 21 85
2 82 58 10 84
0 47 53 33 20
93 19 39 72 8
5 25 24 32 44
59 37 95 88 89
68 69 8 96 99
16 0 7 92 94
65 15 55 66 31
65 14 92 66 69
43 45 30 8 26
87 47 18 82 76
33 80 67 35 22
38 62 84 96 52
39 45 15 57 53
35 47 70 4 0
50 17 65 78 3
2 7 28 36 42
99 48 27 83 72
52 47 81 44 92
35 86 36 71 29
57 15 1 95 7
68 77 6 3 31
20 13 58 89 93
2 56 27 4 64
69 91 88 58 15
10 92 61 63 6
84 93 79 25 90
16 31 55 46 53
23 42 93 12 30
47 99 38 0 14
6 90 72 70 21
62 61 96 87 22
5 55 51 28 17
42 12 58 95 92
67 89 88 87 47
32 72 11 83 97
55 16 66 57 29
54 64 96 2 36
72 47 69 68 12
23 4 37 79 13
52 5 59 58 70
44 3 21 93 76
97 0 35 9 71
87 49 55 18 94
68 32 99 50 37
15 3 80 90 42
83 12 41 21 58
91 89 74 45 51
5 60 13 46 47
18 54 33 26 0
28 43 83 31 20
12 75 34 36 4
76 2 80 70 79
16 66 25 97 20
52 23 80 74 90
31 81 95 28 36
99 8 50 57 98
11 0 30 35 39
12 33 36 90 30
59 66 77 25 46
88 24 4 41 50
18 52 37 75 43
68 49 56 84 87
27 80 51 25 93
4 41 61 30 67
68 47 15 20 50
78 66 97 54 84
35 1 23 89 14
82 51 38 80 75
35 79 43 54 3
73 13 23 25 59
27 64 47 62 66
83 0 7 4 20
67 2 72 23 81
46 1 26 85 25
31 65 52 16 14
15 4 91 59 19
83 60 10 89 90
62 63 13 96 6
24 91 27 29 81
38 47 50 26 36
79 73 22 45 58
15 54 76 46 70
42 69 91 34 9
96 28 61 41 56
15 5 59 47 50
79 27 4 0 21
51 44 26 95 32
9 38 6 58 99
89 69 96 33 73
26 20 32 12 27
67 29 79 81 59
66 45 24 36 68
99 52 1 66 64
15 76 36 75 83
48 7 95 71 6
31 28 65 14 69
10 38 46 74 96
15 12 59 98 54
18 75 48 65 96
57 38 2 86 5
0 87 93 23 94
50 29 13 91 14
55 83 80 45 52
44 31 64 25 71
15 85 50 91 54
9 29 78 74 23
73 82 75 58 98
63 56 29 80 25
53 52 91 18 24
73 83 7 11 87
79 47 41 59 78
13 51 9 21 20
28 35 98 80 63
30 60 34 99 32
11 61 15 73 24
55 74 42 38 26
22 17 43 75 71
97 53 65 75 51
96 74 81 69 71
76 5 49 60 41
86 64 90 92 30
6 95 85 93 40
65 90 20 4 82
41 17 48 27 77
84 60 94 15 10
55 64 49 35 16
36 8 23 58 59
74 19 70 35 82
77 21 84 50 25
18 61 12 28 54
0 3 72 85 87
78 4 57 38 16
1 63 0 38 23
31 76 73 22 35
8 72 44 25 45
70 33 29 37 21
49 50 85 57 61
37 50 51 12 93
83 80 87 6 88
4 95 62 20 41
78 56 76 49 11
72 7 52 14 28
72 34 61 19 68
2 67 88 7 55
8 11 20 85 47
42 54 46 48 64
38 84 3 76 13
32 34 55 90 64
16 1 94 48 91
96 45 27 58 63
98 20 43 73 10
87 52 49 8 24
6 9 31 37 29
45 55 12 23 67
86 0 81 49 1
18 25 7 15 50
32 34 90 99 69
38 73 44 17 52
7 81 85 62 98
68 66 86 21 76
24 94 50 46 67
36 54 55 96 8
90 39 51 5 99
33 20 14 1 81
94 74 38 95 35
37 96 62 57 84
65 11 55 46 69
26 29 75 3 55
33 83 68 94 47
37 41 85 50 57
76 39 5 81 20
18 24 92 71 87
89 92 39 70 59
40 35 23 62 47
7 16 22 34 71
15 97 86 91 3
54 26 56 44 29
93 91 66 8 78
60 48 51 6 57
69 35 87 65 73
53 32 94 49 89
88 34 23 84 59
41 57 7 37 0
79 2 86 82 9
25 69 14 78 33
4 28 85 8 61
97 72 88 1 54
24 84 65 28 60
99 86 53 93 22
17 67 10 29 54
27 0 96 20 36
25 3 62 89 33
10 28 78 82 96
21 11 51 27 97
41 63 72 58 89
7 0 76 67 19
52 38 87 18 13
73 35 49 44 79
76 47 94 53 82
11 61 88 86 83
81 60 33 99 72
84 26 40 8 54
31 50 40 9 80
6 59 51 55 12
2 34 93 38 13
11 82 21 20 72
89 83 60 53 79
42 54 52 13 85
99 76 87 44 26
36 50 0 59 82
10 73 29 72 27
79 31 64 51 91
68 49 65 94 3
46 2 6 78 93
63 31 53 27 60
21 67 99 22 95
24 9 18 76 33
31 95 91 18 37
83 2 78 75 8
77 33 9 12 22
24 50 80 93 39
21 47 35 70 94
2 44 55 60 89
45 18 46 72 11
47 83 56 52 65
4 19 21 14 34
25 80 16 48 36
53 92 71 14 95
98 51 54 15 82
48 87 99 46 83
42 86 11 43 18
72 28 37 93 78
84 79 30 28 98
33 80 65 82 25
35 29 46 13 60
90 69 52 78 64
55 94 0 48 56
42 71 26 93 82
47 36 31 89 69
65 5 41 1 32
74 17 64 11 68
23 54 61 99 37
97 4 22 2 38
8 17 79 99 20
44 80 28 57 32
18 86 94 77 70
11 93 75 49 3
80 48 85 89 23
30 50 94 46 18
59 9 81 42 8
40 15 90 26 31
0 51 39 36 65
93 63 15 87 25
90 44 65 23 66
22 27 20 17 45
42 62 14 0 57
46 4 10 35 96
44 43 60 80 86
48 45 78 40 19
54 98 32 17 69
25 11 14 34 63
26 20 59 0 74
0 59 87 45 30
33 36 1 38 43
67 37 74 2 70
85 22 44 56 23
68 24 75 92 10
90 83 87 85 67
95 24 94 6 40
77 15 52 68 66
22 20 38 29 79
3 10 62 13 16
9 49 87 13 18
85 39 77 82 86
96 44 12 72 78
59 81 21 94 88
17 93 23 56 45
57 53 80 98 22
23 45 5 26 77
6 28 4 25 83
59 55 58 75 92
72 36 99 82 97
74 33 53 49 86
9 50 66 7 78
29 36 71 26 87
54 82 84 47 46
39 30 56 22 27
6 49 84 14 43
41 44 29 18 79
93 56 77 64 26
15 13 96 9 80
50 54 75 99 24
58 49 91 69 63
16 55 19 18 84
13 79 42 56 0
36 27 60 74 53
66 61 62 54 15
85 22 43 79 90
77 21 75 66 15
25 68 69 35 78
88 3 18 50 7
8 27 52 76 72
12 56 0 45 33
13 81 25 24 41
80 65 9 32 95
18 44 36 68 99
78 29 17 38 43
57 41 77 5 10
98 30 70 23 46
9 19 11 34 74
43 33 32 95 14
65 8 68 50 88
49 93 95 1 55
57 92 58 0 90
69 15 23 62 56
54 37 6 96 11
26 80 70 79 88
46 76 82 77 19
4 50 83 88 69
67 44 59 25 21
40 12 90 33 24
63 78 9 71 86
74 82 88 25 15
61 83 7 6 98
41 9 84 13 72
78 26 8 60 20
4 58 29 93 11
46 60 44 55 63
91 19 58 56 85
2 32 67 26 41
43 61 25 73 21
86 14 71 9 6
38 72 58 17 77
25 79 78 5 67
81 70 50 85 73
7 69 14 80 6
93 51 60 42 29
82 28 99 66 27
35 97 91 90 80
87 7 55 78 17
83 36 98 37 72
58 43 51 49 56
93 72 61 19 74
81 44 27 25 12
96 10 26 69 99
94 23 63 52 8
71 95 17 54 70
28 21 33 5 26
45 86 63 92 69
77 43 99 20 56
89 40 36 30 53
41 32 94 17 58
83 63 92 93 51
11 86 67 3 61
81 50 16 90 89
0 75 31 22 77
82 74 37 57 39
49 87 33 0 13
54 38 71 85 32
79 84 89 4 61
34 14 69 47 3
35 12 59 1 55
95 37 72 73 85
0 69 50 75 55
51 24 90 71 78
66 86 23 40 6
34 27 43 14 65
46 11 41 86 21
31 82 38 23 53
66 52 39 6 1
16 95 36 0 69
28 54 91 99 60
32 80 4 3 97
26 63 89 52 22
25 91 43 96 68
71 42 78 34 56
0 82 5 69 19
69 60 58 19 1
91 59 54 52 11
43 46 27 2 7
89 57 42 88 31
93 94 37 96 29
72 8 29 64 75
16 45 0 39 46
77 6 88 40 27
92 78 21 63 51
24 12 90 94 47
5 41 63 42 73
37 80 91 18 50
3 24 53 17 49
6 86 30 46 69
16 97 75 88 93
97 60 66 77 74
1 72 41 69 94
30 8 98 33 43
99 63 95 91 11
56 65 70 12 0
47 39 37 79 48
60 31 19 10 53
14 36 25 38 2
76 89 32 1 20
65 72 91 71 66
87 72 13 30 75
50 80 97 17 63
99 9 53 69 86
20 57 92 66 21
31 42 4 98 0
38 89 15 91 95
94 20 13 64 25
37 9 98 10 44
28 97 5 78 32
99 41 82 22 87
97 16 42 87 15
19 70 82 66 30
79 5 67 75 91
27 26 56 63 17
51 99 13 59 35
85 33 3 34 5
72 74 88 81 10
4 64 61 59 8
78 42 90 27 80
14 12 52 76 1
67 92 61 33 60
82 91 85 76 56
39 37 6 65 63
32 51 45 14 98
73 17 8 46 70
97 75 33 9 23
85 27 15 3 26
4 34 36 10 77
68 82 37 32 86
58 88 95 87 99
70 19 67 42 31
81 6 10 95 18
85 50 90 25 56
16 94 7 78 24
59 88 93 77 4
92 25 16 75 67
97 71 53 32 90
6 70 69 55 40
77 20 72 84 73
34 35 38 98 76
24 96 27 39 3
54 26 12 65 60
67 62 43 98 14
15 95 2 82 33
64 17 86 0 63
-500
View File
@@ -1,500 +0,0 @@
217,490 -> 217,764
44,270 -> 373,599
440,139 -> 440,303
161,663 -> 345,663
848,963 -> 908,963
299,207 -> 162,70
77,346 -> 77,686
693,743 -> 693,127
96,459 -> 96,779
864,39 -> 233,670
58,79 -> 203,79
158,596 -> 463,291
633,293 -> 136,293
656,474 -> 656,72
148,754 -> 947,754
535,780 -> 535,460
821,701 -> 821,796
592,200 -> 592,610
620,786 -> 722,786
632,731 -> 536,731
825,640 -> 195,10
956,547 -> 956,387
25,32 -> 981,988
870,613 -> 870,16
369,780 -> 369,362
348,924 -> 243,924
28,114 -> 540,114
702,690 -> 702,335
836,442 -> 184,442
602,11 -> 602,651
76,988 -> 608,988
15,922 -> 951,922
363,18 -> 296,18
130,580 -> 516,580
799,335 -> 858,335
571,842 -> 571,800
684,654 -> 684,971
815,674 -> 66,674
575,612 -> 575,919
652,126 -> 822,296
391,493 -> 730,493
810,479 -> 810,807
397,420 -> 780,37
187,740 -> 869,740
175,626 -> 175,169
773,901 -> 773,44
45,130 -> 45,17
226,253 -> 252,279
481,928 -> 481,521
121,506 -> 121,50
306,386 -> 653,733
115,635 -> 208,542
619,67 -> 212,67
82,79 -> 972,969
15,20 -> 15,933
606,136 -> 500,136
791,250 -> 791,316
128,931 -> 781,278
11,365 -> 11,226
705,326 -> 57,326
778,632 -> 173,27
121,624 -> 121,737
30,815 -> 909,815
18,114 -> 869,965
554,741 -> 554,771
284,826 -> 945,826
386,654 -> 295,654
235,848 -> 418,848
536,59 -> 497,59
156,922 -> 29,922
57,718 -> 174,718
964,774 -> 964,426
729,950 -> 729,254
896,117 -> 152,861
603,919 -> 603,776
176,472 -> 573,472
25,970 -> 939,56
478,482 -> 38,482
155,936 -> 956,135
351,621 -> 133,403
513,323 -> 103,323
679,167 -> 679,983
910,456 -> 241,456
16,266 -> 16,829
338,791 -> 973,156
564,73 -> 564,676
196,800 -> 339,800
15,776 -> 973,776
719,134 -> 719,775
730,692 -> 272,692
247,770 -> 244,770
853,720 -> 940,720
685,379 -> 873,379
944,647 -> 944,206
67,974 -> 967,74
828,194 -> 355,194
596,522 -> 596,169
677,970 -> 638,970
587,427 -> 587,354
804,488 -> 469,153
355,653 -> 787,221
798,873 -> 133,873
565,798 -> 534,829
239,273 -> 20,273
942,138 -> 398,138
499,743 -> 958,284
913,466 -> 514,466
504,705 -> 504,983
455,863 -> 451,863
638,255 -> 425,255
338,724 -> 338,457
147,880 -> 928,99
11,955 -> 806,160
566,961 -> 231,961
870,560 -> 611,560
714,925 -> 859,925
484,946 -> 905,946
112,394 -> 266,394
191,728 -> 191,635
983,806 -> 217,40
575,286 -> 730,286
366,323 -> 366,211
383,990 -> 834,990
834,976 -> 26,168
819,492 -> 819,648
257,522 -> 257,199
756,176 -> 244,176
165,199 -> 569,199
896,943 -> 18,65
986,642 -> 354,10
864,381 -> 349,381
177,982 -> 977,182
458,254 -> 458,920
550,322 -> 550,297
956,748 -> 270,62
412,305 -> 292,305
201,571 -> 375,571
608,139 -> 608,330
646,718 -> 432,504
449,325 -> 449,115
315,971 -> 955,331
248,143 -> 477,143
956,858 -> 111,13
776,608 -> 739,608
44,842 -> 548,842
590,487 -> 590,792
978,127 -> 978,748
620,948 -> 852,948
67,403 -> 67,122
340,256 -> 346,256
803,58 -> 474,387
876,448 -> 876,55
78,288 -> 565,288
235,80 -> 480,80
949,880 -> 949,666
529,734 -> 529,332
780,973 -> 780,824
900,279 -> 698,279
290,438 -> 34,694
766,569 -> 766,443
729,690 -> 729,137
72,938 -> 72,893
960,563 -> 960,322
669,293 -> 578,293
396,388 -> 984,388
675,694 -> 211,230
152,743 -> 63,743
203,660 -> 391,660
582,806 -> 906,806
698,837 -> 698,483
869,320 -> 595,594
283,817 -> 283,861
919,926 -> 919,235
16,64 -> 930,978
980,25 -> 16,989
181,890 -> 952,119
877,731 -> 877,364
130,55 -> 130,111
30,298 -> 590,858
134,933 -> 134,41
711,853 -> 711,196
123,206 -> 841,924
130,585 -> 130,394
161,952 -> 531,952
455,830 -> 455,919
612,817 -> 30,817
461,474 -> 106,119
511,100 -> 581,30
263,550 -> 263,814
976,973 -> 14,11
749,876 -> 380,876
731,226 -> 731,659
630,682 -> 570,622
914,780 -> 311,780
975,274 -> 87,274
328,957 -> 724,957
357,950 -> 357,659
466,580 -> 466,726
854,425 -> 854,559
39,106 -> 39,82
675,711 -> 956,711
204,117 -> 672,585
867,101 -> 49,919
849,88 -> 784,88
394,249 -> 394,730
865,188 -> 125,928
316,918 -> 722,918
781,336 -> 781,551
821,826 -> 258,826
597,273 -> 597,653
726,266 -> 90,902
701,701 -> 941,701
105,401 -> 949,401
890,486 -> 890,205
651,409 -> 651,408
450,88 -> 51,88
29,478 -> 29,667
676,293 -> 676,77
380,773 -> 962,773
253,836 -> 429,836
833,706 -> 123,706
689,167 -> 665,143
375,540 -> 375,346
867,222 -> 746,343
99,832 -> 370,561
133,349 -> 133,815
950,981 -> 12,43
195,466 -> 644,466
84,876 -> 84,720
128,237 -> 34,331
872,947 -> 960,947
641,220 -> 641,472
489,950 -> 489,441
508,513 -> 721,300
394,137 -> 332,137
456,672 -> 625,503
65,463 -> 540,463
207,745 -> 529,423
948,888 -> 891,831
39,642 -> 165,642
20,228 -> 20,386
706,50 -> 57,699
66,736 -> 66,840
944,450 -> 915,479
697,988 -> 697,862
987,969 -> 57,39
64,813 -> 64,468
814,85 -> 469,85
667,749 -> 154,236
755,337 -> 755,50
536,185 -> 536,217
732,48 -> 529,48
33,578 -> 430,578
511,658 -> 669,658
294,352 -> 353,352
109,937 -> 820,226
465,346 -> 465,114
878,965 -> 34,121
259,933 -> 576,933
240,750 -> 240,296
567,633 -> 899,965
29,609 -> 169,469
962,532 -> 962,921
443,875 -> 395,875
831,584 -> 510,263
859,35 -> 84,810
829,285 -> 829,463
486,661 -> 883,661
371,672 -> 959,84
722,532 -> 722,241
49,216 -> 468,216
308,343 -> 308,277
183,626 -> 264,545
748,611 -> 356,611
67,85 -> 925,943
726,972 -> 726,272
841,222 -> 841,867
597,250 -> 813,250
20,631 -> 555,631
803,846 -> 589,632
276,654 -> 222,708
400,952 -> 672,952
939,173 -> 534,173
638,316 -> 638,935
578,120 -> 578,101
54,457 -> 723,457
904,713 -> 904,721
902,180 -> 99,983
590,426 -> 174,10
740,975 -> 309,975
84,242 -> 803,961
28,667 -> 362,333
73,703 -> 73,354
902,26 -> 902,365
602,455 -> 578,431
339,686 -> 339,846
764,444 -> 311,444
780,535 -> 862,453
333,127 -> 911,127
451,296 -> 451,832
849,681 -> 849,580
309,672 -> 309,913
339,411 -> 147,411
907,478 -> 974,545
444,753 -> 855,342
642,285 -> 683,244
307,633 -> 751,633
292,128 -> 767,603
969,92 -> 647,414
80,120 -> 942,982
886,810 -> 740,810
205,846 -> 168,846
878,230 -> 72,230
186,822 -> 628,822
472,66 -> 472,609
251,753 -> 129,753
575,959 -> 102,959
582,194 -> 858,194
43,986 -> 43,589
355,402 -> 751,402
982,292 -> 86,292
329,966 -> 329,379
475,291 -> 475,924
625,70 -> 625,350
358,467 -> 981,467
319,700 -> 736,283
657,247 -> 654,247
450,803 -> 450,497
812,15 -> 812,425
649,160 -> 377,160
684,491 -> 690,491
925,429 -> 772,429
138,91 -> 883,91
602,121 -> 774,293
700,531 -> 451,531
250,216 -> 800,766
550,784 -> 289,784
53,759 -> 228,759
678,310 -> 645,343
147,70 -> 171,46
130,653 -> 130,103
292,640 -> 731,640
797,762 -> 618,762
154,75 -> 964,885
222,523 -> 557,523
989,103 -> 989,964
335,61 -> 422,61
782,954 -> 160,332
82,929 -> 82,528
732,540 -> 635,637
950,362 -> 798,362
415,566 -> 916,566
588,446 -> 743,291
495,46 -> 495,435
913,561 -> 303,561
788,902 -> 788,698
81,783 -> 715,149
867,990 -> 867,558
145,919 -> 145,725
850,861 -> 727,861
535,129 -> 535,496
922,772 -> 922,917
882,559 -> 672,349
496,80 -> 496,948
915,244 -> 516,643
633,461 -> 748,461
899,341 -> 677,341
66,981 -> 878,169
68,24 -> 984,940
12,880 -> 23,869
779,514 -> 779,752
878,641 -> 949,641
264,919 -> 229,919
213,281 -> 213,196
538,149 -> 538,278
184,478 -> 364,298
301,136 -> 923,758
559,266 -> 559,986
384,37 -> 384,558
815,529 -> 800,514
33,80 -> 624,80
561,261 -> 215,607
169,944 -> 169,921
673,42 -> 164,42
820,977 -> 424,581
816,29 -> 802,29
374,924 -> 121,671
962,555 -> 426,19
982,199 -> 860,77
334,62 -> 359,62
960,785 -> 260,85
681,280 -> 860,280
184,925 -> 184,30
332,398 -> 858,924
405,270 -> 218,270
261,846 -> 29,614
591,941 -> 591,716
313,502 -> 313,637
930,259 -> 779,259
432,15 -> 566,149
51,182 -> 223,182
603,536 -> 603,281
139,703 -> 825,17
965,22 -> 55,932
389,608 -> 771,608
209,617 -> 923,617
769,672 -> 769,236
163,717 -> 638,717
801,604 -> 136,604
974,881 -> 110,17
187,226 -> 929,968
430,949 -> 473,949
899,279 -> 899,224
964,806 -> 964,876
635,190 -> 349,190
142,656 -> 142,216
740,814 -> 35,109
588,956 -> 534,956
107,968 -> 707,968
787,639 -> 787,50
964,491 -> 964,148
30,70 -> 30,323
30,905 -> 806,129
592,419 -> 91,419
73,87 -> 973,987
540,683 -> 540,139
422,107 -> 422,90
935,74 -> 935,590
728,566 -> 188,26
839,313 -> 839,620
723,898 -> 723,719
679,814 -> 679,617
203,633 -> 417,633
36,812 -> 546,302
112,316 -> 598,802
798,773 -> 989,964
914,69 -> 520,69
213,556 -> 213,19
795,516 -> 795,220
348,803 -> 664,803
910,861 -> 238,189
633,691 -> 594,691
96,166 -> 96,60
278,848 -> 854,272
64,370 -> 64,815
386,196 -> 386,222
888,330 -> 888,834
166,482 -> 37,482
594,283 -> 594,865
515,267 -> 515,448
707,279 -> 239,747
302,745 -> 302,268
210,830 -> 885,155
592,180 -> 592,324
245,154 -> 245,613
607,954 -> 545,954
854,951 -> 19,116
77,878 -> 963,878
759,585 -> 759,892
750,918 -> 750,130
62,716 -> 329,983
785,880 -> 785,590
318,794 -> 318,599
403,547 -> 719,863
742,803 -> 742,937
680,579 -> 680,425
268,404 -> 826,962
425,959 -> 710,959
406,823 -> 976,253
359,361 -> 165,361
276,861 -> 657,480
74,260 -> 743,929
194,129 -> 194,651
879,835 -> 65,21
16,977 -> 980,13
538,525 -> 624,439
985,789 -> 985,510
699,850 -> 560,711
301,48 -> 477,224
28,938 -> 905,61
844,530 -> 793,530
286,325 -> 936,975
368,122 -> 677,431
924,153 -> 924,774
783,498 -> 783,148
250,392 -> 578,392
465,345 -> 573,345
860,763 -> 860,40
373,226 -> 599,226
169,562 -> 169,292
408,123 -> 569,123
510,396 -> 733,396
199,20 -> 199,770
892,631 -> 237,631
671,863 -> 705,863
141,530 -> 141,630
467,159 -> 367,159
729,501 -> 255,975
578,871 -> 578,225
821,363 -> 821,820
-1
View File
@@ -1 +0,0 @@
1,1,3,1,3,2,1,3,1,1,3,1,1,2,1,3,1,1,3,5,1,1,1,3,1,2,1,1,1,1,4,4,1,2,1,2,1,1,1,5,3,2,1,5,2,5,3,3,2,2,5,4,1,1,4,4,1,1,1,1,1,1,5,1,2,4,3,2,2,2,2,1,4,1,1,5,1,3,4,4,1,1,3,3,5,5,3,1,3,3,3,1,4,2,2,1,3,4,1,4,3,3,2,3,1,1,1,5,3,1,4,2,2,3,1,3,1,2,3,3,1,4,2,2,4,1,3,1,1,1,1,1,2,1,3,3,1,2,1,1,3,4,1,1,1,1,5,1,1,5,1,1,1,4,1,5,3,1,1,3,2,1,1,3,1,1,1,5,4,3,3,5,1,3,4,3,3,1,4,4,1,2,1,1,2,1,1,1,2,1,1,1,1,1,5,1,1,2,1,5,2,1,1,2,3,2,3,1,3,1,1,1,5,1,1,2,1,1,1,1,3,4,5,3,1,4,1,1,4,1,4,1,1,1,4,5,1,1,1,4,1,3,2,2,1,1,2,3,1,4,3,5,1,5,1,1,4,5,5,1,1,3,3,1,1,1,1,5,5,3,3,2,4,1,1,1,1,1,5,1,1,2,5,5,4,2,4,4,1,1,3,3,1,5,1,1,1,1,1,1
-1
View File
@@ -1 +0,0 @@
1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,281,282,677,25,264,2,413,1654,100,68,1111,667,281,128,172,188,4,432,250,232,1282,773,24,1182,33,200,989,148,179,108,208,330,152,227,597,517,1205,489,342,98,287,375,413,385,419,115,42,1363,425,1104,1869,362,111,985,1028,192,504,381,58,634,391,174,125,23,39,255,1437,198,259,154,1644,1275,250,444,122,71,697,184,594,307,694,177,131,269,1780,592,678,128,33,41,541,132,241,883,82,498,1008,153,985,127,801,78,137,128,68,69,180,833,250,1476,127,439,1856,276,58,1785,520,1214,749,429,126,576,9,184,578,1173,83,896,475,23,183,108,532,1114,775,748,422,577,758,1365,97,726,118,206,283,485,798,338,459,954,361,205,30,736,65,94,857,986,452,273,210,1551,354,91,26,60,1691,391,163,132,833,52,629,309,261,148,328,17,604,309,907,441,361,104,190,434,246,295,223,141,239,662,682,494,467,185,1,236,367,125,139,1289,657,279,238,482,512,1498,3,1297,148,548,1053,277,400,713,33,140,227,408,1,1592,219,805,538,535,567,703,939,662,546,993,552,341,144,396,922,324,662,82,142,320,859,369,28,106,741,254,389,483,680,1317,3,177,46,1461,53,1516,858,993,968,1325,4,4,175,303,126,847,754,1129,993,79,67,1381,766,470,1324,726,48,26,703,5,1002,102,1839,236,370,1005,855,262,1018,325,3,681,397,1420,1163,155,961,452,512,112,222,39,435,64,746,185,151,397,1648,315,381,25,1053,151,280,230,602,130,173,784,664,129,625,114,405,773,191,116,1017,1401,16,47,72,192,88,68,802,446,479,7,347,167,35,713,74,404,628,283,920,402,1173,273,436,671,1544,149,278,331,766,888,10,567,53,138,10,132,1273,266,270,305,93,1649,86,3,224,79,1188,609,1107,308,1525,159,895,911,824,1135,560,43,436,1225,1332,57,245,90,1057,814,54,68,168,9,190,572,916,42,330,500,310,1269,583,27,482,399,361,706,1109,252,433,851,137,1081,118,107,254,1062,640,1284,297,379,177,268,230,1148,727,829,129,51,808,223,559,14,155,189,1050,931,1069,927,73,594,44,1049,32,253,1621,134,263,5,926,339,141,220,1330,319,408,722,611,0,303,680,323,502,373,46,61,3,121,263,346,88,39,1084,297,822,468,764,138,161,449,35,1162,1308,312,694,207,921,330,1621,302,707,378,612,7,3,1595,1075,915,171,370,516,115,157,340,603,984,239,2,266,1501,129,110,1272,1105,221,431,1002,455,1204,595,914,1396,59,1576,260,446,1898,584,18,204,66,920,526,0,1199,290,1275,12,14,187,818,448,1015,442,292,1019,383,1217,17,228,214,778,53,148,68,388,15,496,310,428,186,18,206,104,760,790,408,1652,95,1351,325,144,73,1301,1085,29,967,342,656,428,533,67,1252,365,130,49,457,34,808,88,47,803,125,291,558,457,160,1157,1410,90,215,638,1009,446,698,1102,171,1736,878,115,1195,1453,261,121,1,59,56,295,368,646,1220,73,370,555,27,94,186,1536,1527,641,8,626,44,86,266,0,110,329,278,777,1839,20,651,435,172,4,144,617,48,201,751,440,231,0,686,1550,605,208,0,10,613,552,788,183,18,71,119,705,223,17,645,77,83,1342,1671,561,499,836,247,678,923,205,69,69,353,242,114,97,132,234,245,364,40,1061,117,665,183,192,448,283,593,71,208,1537,386,35,434,840,462,27,458,347,293,93,288,250,753,536,1317,124,968,937,503,305,19,24,638,560,488,254,1556,748,86,551,972,1675,28,175,1008,607,263,19,446,566,316,236,1577,0,802,340,526,778,763,41,489,1225,145,116,1,1556,221,703,624,33,74,1404,869,574,190,326,646,33,582,1212,703,76,97,54,41,127,48,309,556,10,356,1028,306,712,193,325,81,100,1414,107,81,1150,339,70,346,523,250,265,104,1302,797,499,829,455,591,170,1339,60,1312,631,665,530,95,348,36,1122,1334,775,54,819,604,759,708,139,1394,481,683,26,66,177,54,318,33,1714,43,801,121,384,560,658,50,159,1835,333,232,203,449,221,659,160,83,93,1176,1170,279,265,907,617,45,342,104,723,1027,697,494,952,494,820,90,462,208,1596,513,24,192,438,138,132,2,566,324,826,444,866,1038,851,629,646,48,334,258,14,571,963,458,62,208,233,31,368,884,207,88,682,118,634,1277,51,352,90,194,323,99,24,138,82,501,1084,403,270,638,401
-200
View File
@@ -1,200 +0,0 @@
ecfdbg decfba aegd fdcag fagecd gd gcafb efdac cbgeafd dfg | bgacf afdebc fceda cabfg
cfdabeg cda bcgad bedfac aefbgd bfgcad dfbga egabc dgfc cd | gdbefac fgabcd dcbefag aedgfb
aedbfgc gcaf ebgfca bca edgcfb adbge gebac fbegc ac afdcbe | ceafbg acb egbad gfaebc
gaeb cafdbg aedfc ecfgdb ab cdaefgb cgbdae bdecg cba eacdb | gfacdeb gabdec begcd adbce
fcbgea fbedg bc cbefg befgcda cfgdab gbc efdgca fecag aceb | faecg cb cb fecbga
fdebcg bag gdefa ceadgb fcab ebagfc ab fbegc fcaedbg fbeag | cfegb bga edfga fgbec
fg fcagb dfgceba edgacb fagd gfb dcgba agcfdb gecfbd ceafb | facgb fbdcge gf gfabc
eabfd dfb gbcfad ebdag fagbce gefabdc edcf aecfb cbdafe df | egbcdfa afdebcg aecfbd acefb
fbaec bfegad bga deacbg gb fbdg acgdef deagf fgabe gabecdf | fgdb gefba gcdafe bg
bfdea agfbc gbd faecdbg gd efgd cdgeab efadbg faebcd fabdg | cdbgea fged cfabed bgd
gfedac cgaef gab ceba ba afcdgb gdefbac fegbd bafeg abcgfe | gcbadf egafb ebafg ab
bgda agfcdbe agfde faegb baedgf fcdaeg fdbeac ba bcegf bfa | bcefg eagdf ab bacefd
dfgbac fdcaeb cbgeda bfdea dcabf ebadcfg gfbea dbe fecd ed | ebd cdfe bgeaf cdbfea
efdba edb eagbcd bacef bd bcfd becfagd begcaf cbaefd aefdg | fdage edbgac cgaebd bed
gfecbd gbadf fabged gbf cbdage fagcd feab edgcbaf fb aedbg | agdcf bgfda afdgc afdgb
gfaedc caefb badcfge dgfe acdgbf eag eg fgacd gecfa ecbdag | acdbgf cbegad cgdaf eag
gfebda fgacd dfbag bg geab gcbdeaf eacbdf cedbgf fbg abfed | aedfb gb eafdb dbafe
ebadfc efdbga bega fdgcae dbgaefc edfab fag ag dagbf cfgbd | efacgd dbefag fadebg bgfad
bf fbd cgbdaf dcfbae fgbcd gcbadef gafcde bfag cebgd dcafg | afbedc gcdeb fbgadc dbf
gfecab fageb cgb acgeb gdfeab ecbafdg gfca aecbd gc edcgbf | afcg cedba aecdb cgeba
cdge abfdge cgfeadb bdc gbacd cd cdaebf bgeda cgdaeb acfgb | baecdg fcbag dfeagb gcde
efabdgc ecafg dacgbf ecgfd dfe gbfdec ed bedc cfdgb gedafb | egcaf cfgae efcgd de
bfagdc dbagef gbedcf afdeb ab edgfb gdebfac fdeca baf eagb | bfa bgadfc adcef ab
cfdbae dgefc fcaeg geafdc dfag fd cegbd daefbgc cfd cefbag | efgcd cgdfe cefdg cdf
cbged feabc fdgb egf ecfdbg dfgcea gabfdce ebcdag bgefc fg | fbgec bgdf efgcbda cbedg
ebcdfa ef cfe cadbfge becfd dgbeac dafe gbdfc cefgba ceabd | bfcaeg gfedcab acbfge fe
fbdage bf acdgb cabf gcfed gdcfbea fgbdc fbd fcbadg bgedca | bcadeg bf facbdeg gdabef
gfacdbe fga gbdaf gadbc dfeagc fg bcgf eacgbd acdgfb debfa | gdcab agcbd dafbecg gfa
gadbcf badfe bae cfaed abfdg adfecbg eb bedgaf ecfagb egdb | bdaef egfdcab eb be
dbgecaf gacd dfbac dbaefg dba bfgced cafbdg cbfgd faecb ad | degbcf baegdf gaedbf dfegbc
afgcd dabgf gedfba agc bdfgac gdefc bcaf cfeadgb ac ecdbga | gfadbec fgcda edgbac fbagd
acbegfd cgeb dagbef gbaed caebdg gc dafgec adcbg cdbfa gdc | bdaeg bdfac bdfac bcgad
gfab agfbde fa edbgf cbedfa decga cdagefb degbfc egfda afd | daf fa afd efacbd
caegdbf daefg fbgac be fgaeb cbea bge cdfagb dgecfb abecfg | gebaf aceb gfdecb befga
efcgda bd efgdcab afbec bgcd fdagc dgabef dab dafbc cfdagb | dba dcgb ecbdfga abfcd
abdge fd fda fecd bfcage fecdba fdgbcea afbde acdbfg cfbea | fedc fced adebf fbacde
acfdbe egcadb gfbacd acfbd bagefcd bgfa cefgd gac cdagf ag | ag bcadeg dgcafb cefdg
eabdfc fcaeg fecad bcfda dcfbge ebda de ced fdacbg dfbcega | gcebfda gdecfba dbgfec defca
bfc gdfceb cf eafgbd edcab ebcfa gfeacb acgf adcbgef fabge | bafgecd fgabe aegbcf badec
gfbc gaced fg bfcda fgd fcgad dgefbac bcafde dgcfab edgfba | bcgf bdceaf dbfaec bdacf
acbdgf dfcgb dcfeg egbd aedfc fcebag ge gef cfegdba fgbdce | gcbfea fceda dcfgb dfgbc
agcfd fga fecda gadebf dbgcfe fcbdga dcfgb ga gbac cbfgead | fdeca gbcdf cfdgb afg
eba ebdc gbefda dcbegaf fbaced afgec be dcfba ebacf dfcagb | eb eab bea be
bfcge bfead edgfacb edcfag abegfd becdf dacb cd cde bfdcea | adefgc cdab fbead dcba
bacegd gafcbe begfa bcfad ed gedf ebgfda bdefa ead fegdbac | geafb fedba dbcage egdf
df fbgdc fcd bfgce abfd cdfgba cgefad cgbad ecadgb egbfacd | bcdgaf cedfga dbgafc dgfbc
dfabge bcfdg egfbca bdaefcg decbfg ebfgd fgdca cb cbde cbg | beadcgf dgacf adfgc bc
fgda dafecgb egdbf gef dbgec agebcf gf edgafb fcaedb bafde | fg fecdab bdefg bgfde
abfgecd eabgf fcdabe gbdafe acebg dfecgb gf gfb fgad dafeb | efdacb efadcgb dagf dfabe
ceafbg dfcabe gcfea gbac fgead gc cbdgef egc aecfgbd cefba | badecf badefgc bfaec cbeaf
cadfb caefbd cbfega fdbga cad dc edbc aefbc egbacfd dfgeca | cefdab cdfage bacdf dbafc
gfcb cf ecafdg fcbed dfbagce fbgeda gdfbec cef eacbd ebdfg | gbdaef caedfg cf gbdefc
gd cgd ebdafgc cfbega gcbfde bcfdg badfc bgaced bcefg gedf | gfed fcbgd cdgfbe cfbeg
bfga dabge befacd agbdce fb aegfbd fcged dbegf ebf ebgdcaf | bagf ecfdg fbe bedagc
beac ea ade gefcd ecgbad cbagd badgcfe ebfgad acgde gcfdab | ea gceadb gcbad cbdga
cadfbg bcgafed cbedf afeg abegdc adf gedca efacd acdgfe fa | daecg fdecga edafc adbgce
egd ed egacd cgabfed efcd degfca dagbfc dcagf bgfdea abecg | dge egcad ged cgdfa
cgdeaf fcbdeg fgc dgcea cadgbe abdcfeg gf cafbe gadf cfega | aecgfd bfaec gf dceabg
caegd cbfgae dafg egd gd ecafg gfabdec cafdge bacde bdfecg | gedfcb edcagfb cdega becgfd
badgfe ed dcge fgdceb cebfd cbfedga dabcf efd ecgafb cgbef | dgec dfe ecbgfa cebgaf
dgabcef bcd cfeadb degfca bgace gcebd cegfd gbdf bd begfdc | acbeg dbc gdfb gfdb
edafgb bagf acedb dbg fcgdabe bcdgfe gb bgead dfaecg faged | gafb dgafeb gbaf fadegb
bc abcegf bfcgd gdcbef dcbe gcb cafegbd aegdbf dfagc dbegf | cbg cbg cfedgba dgcfabe
be ecgbf cbafg ebg bagedc fbae degfabc fgcdab dgfce cabfeg | gfcde dgfbca dcabgf bacegd
af dbacge efa abegfdc gfdce begcfa aecfg afbced fgba ecabg | ecadfb gfeca efa gefdc
acbedg edfacbg begd cdfabe dagcb eacdb gfeabc bg gba dfgac | cegbaf ecfdba cgbda dfebca
dcbgaef bca abed cbgad gdaec fecbag edgbca geadfc ab cdgfb | beagcd dgbca eabd ceabgd
cgabe gfcbe cfegba fdbgc fe fdgebca aedcbg gfea bfdcea fbe | feb gaef badgec ecgabf
afecdg dfbc cd dcg aegcb baedgf becgd becfdg eacgbdf ebdgf | gbedf edgbf bcdeg gfadbe
gfdba adbefc ebcdfag bcgaf bfdaeg dg adbfe egbacd bgd dfge | gbd bgd bcgfa fbgad
dfaegb fe bcgde face afgbdc acgebdf agfcb cgbef fcgbea gfe | acef afedgb bgdfcea fgedab
abdcef gdfea cbaef gaefb cagebf agfdbec agdbfc ecgb fbg bg | aebfc egcb acfgbe gebc
bcf gbadec bf bgaf fcdea cgbda gebdfc dgefcab fcabd bdagcf | edacf bf cfb gadcb
cdafgb bgdf gacefd cdb bd ecfadbg cdafg cdebag bfadc ecafb | bcefa cfdba agdfc fabdc
egb dgbf bgdeca febag fbadge ebadf aecfg gb geacfdb fbacde | fdbg bg caegf egfab
ac eagfbdc bgacf cbdgae gabdf acdf gdfaeb acg dbgafc gbfce | gdbeaf agbcf dcbagf fgadeb
ef eagf bfegcd gbaefd fbe eafbd dagfb abced agcfbd abcefdg | ef ef ecdgfab deafb
fdgbc efbgd aedbg dfce bcagdf fe fegcab cdgabef efg cgdfbe | efgcdb efg agcfeb dgfabc
fe dbefgac baegc eagfc ebgf acdgf aedbfc bgafce cef bcgdea | agbdce aecbfg cdgaf ef
fbgcd bdf dfbega dfcga abfdcg db dabc cfebg feadgc ecgbdaf | fcbeg gcdfb cgbdf acfdg
bac cdbeagf abfd bcfea edcfba abdcge edacf gcbfe gcdefa ba | cegfb cafde ba fegdcba
gcabfd acdg cg gfdbcae ecbgfa cbg bfegd gdcfb cedafb fadcb | cgfbd cfgdb fdegb cg
fcdaegb gdefcb dgfacb dcgea eb dgcbf afcegb bgced bdef bec | ecdag eb befd dabcfge
defcb eabcf bca abfeg ac cafbge gfac dbaecg fcbegad bagedf | bfgae cfga ecabf aegbcf
gdcfea adgcf cbged bgadfc gbf gfdbc cfegdba bcfa bf dgaefb | fgadc bfg fb bf
bdgcaef adg egbca cdabg eadbcg eadc cgdfb efagbd ad ebfagc | da dace dga gedfab
cade afgecd fgedc cbaegf efbgd gdfcabe ce fec cadgfb dcgaf | ce adefgc cdea fce
efgcba ged gcdbea acgeb decag cdgaf egbcafd bdae fgcbed de | adeb edg cgadf agdec
agfce af febgc ebgadc cadeg dafg faegcd bceadf bfaecgd efa | egbcf fbgec acedg af
cbgdae debcfa becadfg agecb gcde cfgba ce begda bec fdaebg | bec eadgb eadbg badefgc
bagedf ecf ec dbefc cbedfa edca dfbcg edbfa eabgfc aefgcdb | fec dafebc cfe aefdb
aef bface dabefg ebfdgac caeg bgfac fcegba fcbed ae cfgbad | efcba baefc afbcg gbcfa
dfeca fdagcb feagc adcbef fg gefd cabge fgdbace cegadf cgf | fg decfab cfdbga baecg
gbaefd agedbcf cagbe fb cgbeaf baefc bfgc bgeacd efb dcfae | gcbaed fb bgfcae bcfg
cegf bcedg bgacdef gbedf fg ebadf ebgdcf dgcfba debgac bfg | bdfgca bgf fgdbce becfadg
decafgb acgbd fegdab cefag dfcga gdf fd aecfgb dfecga cefd | gcebfa fgacbe fgbdae fcde
faebc acb bdfgca afgedcb ab daeb fcbge afcebd feacd cafedg | fbgdca ab afedgc ceafbd
gfeb ebgcdfa dfgca abfdg agebd bf abf bceafd dabgce dbfgae | fgeb gadbf gcafd bf
ecbdfg gecdfa efcadgb ebdac deabf fbga bf dbf efagbd dfgae | adfbe cfdage efdcga gfab
fg cedbgaf feacbd dafgeb fag gfecba acgde febac cfega fcgb | decbgfa fg ecgad afdbgce
cfbgde aegcdf daefbc dgceb fcged gafdecb cbfg bc ceb gebad | dafecbg eagdb bec begdc
cdefga fbgcade fgdca cd bafdec adc dbgeaf cafgb efgda cegd | afcgb ecdg bcfag caedfg
agfbc af deagfbc fecbg gfa fcegbd cfae bgafec edagbf bcadg | agf ecfa becfg af
bdgf afceg adcfeb egbaf afgbde afb fb cegbfda daebg adgbec | fba ceadgbf bf fb
efgb eg aecbd ecbdg daecgf dcgfb fbagdc egfadcb gce ecbgdf | afbegcd fegdac cebad bgafdc
acgbd eb dbace bdafgc fabdge bceg gecdba edcaf aeb bagcdef | fdgabc fegadb dgbcfea egabfd
cadfgb acefdg fcb fbea fb ebdfca ebcdf degcb dfaec cbdefga | aefcdbg cdegaf gdbec dcfae
fcdab edc cfeb gdfcae dcaeb ec gdcbaf fdcabe debga efbgadc | fcbe gbaed fcaedb acedgf
gb gefca acbfge bdgaecf bfcag bdfca abg aedfgb gebc agfecd | cgafb ebcg aecfg efgbac
dgabcef fbdgea fb cdbf cebfg bdaegc dgceb egcdfb bfg acgef | cbgde faegc befgdca cbdf
cfaebdg fg fgcead agedb fge ebcdf gebdf dfeagb dbgace fgab | gfba eagdfcb dcabeg cegafd
fbe egcba bgefdca bgdafe afdgb fdbgac dgcbfe fbega defa fe | ebf egafb fbgdac egafb
gdc acfdeg geabc dbfg dabcfe dbeafcg dg bedcf edcgb efcbdg | agcefd cbdfe dg bcedf
bafgcd febdgca abgcf bcgea be edgac aeb cbef afebgd ecgbfa | bea eb ecfbag abfcg
cdae cbd gacbe fcbdge cefbag bagcde gcabd bdafg dc fdgebca | cegdfb gbeacd cd cabdge
dac dfgae fcdabg agbc dcfbg gfedbc fadcg bfaegcd ca eadbcf | cfabged ac cbag dfceab
egbdcf bdeagfc aegcb bafec fdceb edgafc caebfd aef fbad af | efa adfcbge dfba ebgac
ebadg fcaeb dc acdg becgfd adecgbf dbc dbeafg dbaec bedagc | cdb bdc dc aecbd
cfaegbd agbdce edca badgf edgfbc ebagd ed gde aebfgc ebcag | cbeag edca gdbea fbedgc
fgb dfagceb cabgdf gf afge ecbaf deabcf cbdeg bgefc gfceba | bgecd gf bacef fg
abd fgcdaeb gfeabc gdfacb fcbea faebcd dcbeg badce ad dafe | adecb gfaebc fdcbga aecdb
fcgdeab eabgf feagd dge dg cdaefb acedbg cdfg gcaedf efadc | cfade cbeadg bgfea dg
fegcb fcedag badgce fcbdgea afg gafeb af dbgefa degba fadb | fbegc fabge af dcgabe
abcdfg dcbfea bagd cegfb bd dbf cgafde edgcbfa fgdca bcdfg | fdabce gbcfd cbefda ecabdf
afgbd fbgde dcfageb ag gba gfdcab eadgcb cfag daebfc cdbfa | ga ag bdaefc ga
egf ecabfd fg ecdfb cfgb cbegadf dgbfae begcfd agcde cgdfe | gbdefa fedgc cafedb cfdge
bafcdge dgbace cgbad cdafe bedcfg be abge cebad dcfabg bed | dbe gabfced cgbedf cbadg
becagf fdec debafc afedb adbgc bgdfea dabcf cf cabegfd afc | bagdc decf fca dfbae
dcagb gfcade cgdebf fdbeag gdfeabc efdcg ecfb deb egbcd eb | eb edagbf ebfc eagdcf
ebcdaf fgdc gbeac dgfae efadbg cd gcefda dgace fbgedac cda | aegdc dfabge gcade daceg
fgdcb adceb fcgeabd acedbg af fba aebgdf efac dcabfe adbcf | cdbaf cgeadb bdcae bfgaed
fcb fc fcdgb dabfg eabcfdg cbged cefg begdca gcdbfe efdacb | ecfg fabgcde gdecbaf bacged
gfdabc ad bdfgea fegbdac gbaecf bfega adg adbe afged egdcf | dcfgab bgcefa gad gafcbd
bgdcfea afb gabfcd adbfeg efdba bgdfe dfgbce eafdc bage ab | ab dgefb baf bgaedcf
geabd adecfgb cg ebcdfa agfbdc fdcg dabcf dcbag faebcg cbg | dagbe fgdbeca cbagdfe fcbeda
bdfa dafbge fgedb bfceg bdg afdebgc bd bdaecg defcga gfdea | bagfdce dcgafe fegbc dbegca
aedcgb fb gdbaf dgabe acdfg fabgde fadecgb gbf edfb facegb | agdcf badeg fb fabcge
dfbce gafed ba eagb gfdbca aefdb fecdag fagbedc abf egadfb | eafdb edfcbag dcfbe ba
afdec fcegda edgabc bgdfc faebdc ba bac dcfebag fadbc fbae | deafc acb fbgaecd cfdea
gecd dgf eabdf gd gfdeb fgcadb gcbfae cefbg cedfbg cfeabdg | gd edfba fgbce fbgec
adfge bcgfde baecg dcfgaeb bafdge gdeac dagcef dc cdg acdf | cgd dgcae gcead cd
efgac agbfedc aecbfd agbfde dcbg fdbag gacdfb bc fgbac fbc | bc afdegb bgdc edbafg
be cbfgad acegdb agefd dabgc cebfgad gbce bdega dfbace bed | bagde eb egcb edfbac
gf fag afgbe ecbaf geadb eabgdf egdf dagbfc ecagdb cbgdeaf | cbefa fg bdega gfacbed
bag defba gcfdae cgbd gb eabgfc gcfabd dfagb gcdfa ecbgfda | begacf agb cgfade fcdga
adgfcbe egd fgadeb cgbdae acdgb cgedb deca de efcbg acbdgf | cfbdag dcgba geabdf eadc
cagdebf dgebcf edc abecfd egfadb fabed ec gadbc efca dabce | dec fbadec debac edc
fcedg dfgbae eg deg egcb fgcebd efacd gfdcb gbfecda gdafbc | efacd ge cfgabde fagecdb
dbag aefcbd gbc gcdbf bdcfa bg dfabcg ebadgcf cfgeba dgecf | bfaced gedcf dbag cgbdaf
cdgfbea gd bdag gebca bdcgfe dgc fcagbe gabedc afcde cdaeg | abgcde ebcga dagb bgcefa
cedgbfa ecabgd cdafeb bafcg cegdbf cae gdae gabce ae edcgb | aec cageb ecdgfb egda
eacgbf afbdg gdecaf gafbcde gfc baefc bcge fcabg fdcbea cg | agfdb cgfba bgafc eacgdf
fgebd fed bfea cbdeg decfga fe cfdgba defbgac dfgba afdbeg | fgdba abegdfc bcadgf fbegd
adbfcg fagdbe bagec dc fbaedcg bdfag gbdca fcgedb dcfa cgd | fcad bfdgae dgc eagbc
fgbaecd fgecd cafeg feacbg fdgcb fgaecd acdbge ed adfe dge | cfgdb gcedf deaf cfdbg
gedab afdcbeg decabg bfedcg dgefab ef aedf cfgab gbaef efb | abcgf cabgf feagdcb cdbaefg
fdb ebdgfc bd adefgcb efgad gbcd dfbge afcgeb fecgb dbeacf | bfd cgfdeba cafdeb gedfa
abgde bdefa fagdbe fbadceg dgecab dfe ef edfgca bfdac fbge | fegb cagdeb ecdgab bdagefc
febad bacged fge cdbeg cfebdag fgdc gf debcgf bdefg cfebga | fg egf beafd efg
agdcbf bdefcga cbgefd dcagb gbedac faedc gfc bfag gfcad gf | bgfa dbagc bfgdca bcgad
bdce gafbed gaecf bcefdag gbc dacbeg fcbgad egdab cb cegba | eadbgc cb ebadgf debc
ac afgceb eagbf befcagd abcg degcf aefbdg ceagf edbacf acf | abecgf bgac gacb ceadbf
abcg fcaeb gfdcabe ab befdc cfage gdbfea gecdaf efcgba bfa | bgac bcga cagb efgbda
fbdeg gb fcdeb dfecbg eafgdbc edgfa eagbdc baedfc cbfg beg | adbgce dfcaeb bgfc abcged
afg afdbec cbdgaf afcgedb bedgf cdagef ga afcdb gbca gfbda | cfagdb edcafg cbfgda bgfed
edgafcb fdeab dgabcf cbgf gdfeac dgfab gdeacb acgbd gfa gf | gaf bcgf ecbagd agf
dcbfa gfbace ebfca efcg bgfeadc abgce gbafde ef beadcg fbe | egcf fabdc adebgf bdcage
gc cfdbe fgcebd bcgef ceg fdagceb ecadbg fgdc fageb bedcfa | adgcbe aefgdcb gabfe gc
fgead bcdafg ba bcae edafb bcefad dbcfe cafbgde gbcdef adb | dcfeb gecdfb caeb bacdfe
gfeab abc bc ecbf gdebaf gebac gdcea gecdfba acdfbg fbgcae | cbdagf gbcae bc edgbaf
aecgf acbf cgadef fecbg bc ebc dcegba befdg aebgcf afdebgc | ecb bcgfe bgedf abcf
fg facg efcagd eadfg cebfda feg daegb bdfcge afced cfeadgb | acdfe fgeda fg cdbegf
gefda fed edfbgc fgeab cfad cdeag fd cebgad dcefabg fagdce | faegdc eafdg fd cgbfdea
ebfad cf befca gabedc fac cabeg dcaefg abfecg fbacged gcbf | bfade fcbg fc cgbf
aegbf cbdfega adbfg ef cebdgf dfcbga gebca fadgbe afde gfe | fdae afcbgd bgcedaf gef
cdgab cg edgbac gbedfa gebcdaf dcebfg gcd degba aceg dacfb | gdc cgdba cdg gbadc
daebfg fcebgad db gacbf feacdg gafdb eafdbc dgaef dfb bedg | cefdbag gedfca gafdeb befcda
ecfd fcdgba cebgf fge bgafed febdcg cbfegad cabeg fe gfdbc | ecgdfb edfc gebdaf fecd
fac gbeaf bcdga adgbcef febcda cfgba gefbda bagcfe cfge fc | gcfe gbcaf acfbeg acdgb
afegdcb fdgba bfgacd fdcg fd cbfga adf ebcagf dcfabe gbdae | df bcaefd cfagb df
cdbgef bgef ge ged badec agfdcb adgecf cgdeb cbgdf fdbceag | dcfgb gcebd egbf dcegb
dfbea gb cfgea bag fgbc debcga acdbgef afcgbe gfeba cfdaeg | beafd bag cbgf gba
fdgcab cd ebdaf baecdgf cda bcgaf cfebga acebgd cbdaf cfgd | aegcfb cdgf cdgf afegbdc
fcbga cbeagf dcabg da dfabcg bdaf begcd dca fdagce bcgfdae | acgbd dbceg acd cfbga
degacbf cf dcgfba adegbf efgab gfce acfeb dbeca caf gcebaf | bacfe abfecg ebafc debac
bcaefd gbce dcegfb gcbadf dgfaecb fbdce dgcfe cg agfed fcg | dbgfec gc acdgfb efbcd
cdfag dgebacf bdfagc fba acdgef fcdab bfdg baedc gbfaec fb | cedbafg fb dgfeac cadbf
bcdgf eafcbgd bd adfb dcabeg gebfac gcfba gfdacb fdgce bgd | cfbga fgcab db fcegd
cdgafe deg bedfc dfgb cgdbe dg dcefba efdgbc cagbefd cegab | bgdf abfdec egd gedbfc
bg febdca edgcb cdeab gbc edgbca gdab beagcf cdegf debacfg | bcaedf dgcef badg fecadbg
dbca cgaedb gcfbe cea fadbeg gabce ca edcafg degab abfedgc | fdebag beacg abcd adcegb
gcdfe adbfgec cbafge dgbaf ebf gfbced eb adcgfe becd fgebd | ecgfba gcbfde dbec cdafge
dbgeafc dacbg badfge abfce ed eda dcfe decba dcfeab gfbeca | febcda defc beacf fdgabe
efcd bfcadge fcdba egabf bfdcag dcefba deagbc fabed ed edb | gbeacd fdeab ebcfad fageb
dcgf fegdab bcaeg dcegaf dga gd dcfbea fcdea aedcg bdefgca | cbegdfa eabcfd adfce cbefda
bf edfbgc cegbf bcadefg ebf acbfde gcedf feadgc gbcae gfbd | feb dfgb egbcdfa dfegc
efgba eacd efadcg dcgefb gacdf dbcfgae efd bgcdaf edfga ed | cfbgda dgcfa gcfead eadfg
afgdc fbg cdgaef fagbdc bgcefa cdbf bgdaf bdaeg fb dgabcfe | dagfc cefagb egcabf fcbd
cadgfe acbed cfabgde fdbcge cfga fad fdeabg fa dcaef dcfge | fad bafgecd cfegad adbfcge
agdefc cfad bdgecfa gadfe aefgc ad ceadgb gbafce bfedg agd | dag ad fcage cgbafe
-100
View File
@@ -1,100 +0,0 @@
8656456789432129876532356789899998754320146789767893213468953205459323997678901997655423567797655667
6545345996543234987321567896798749886531235697657999304989764312378999886567899876543212345679543156
5431239879694349876432398945976532997782356789547898919898765434567988765456789997654323456789654345
6520139768989556987543499239854321098993768996536587998789876597679876544245690198965654567899875456
7631297657679697998756789349765432129654879797627456789678997698789997432136789999876765698969987887
9799989844568989869897996459876543439865994599210235893459998899995986543545699888989876899458998998
9898766532345678954998987968989675649876789987421346932398899942134987654676789767891987894357899999
5999854321234799123459999899699876789989899876532457891987678991013498767898896556790198965456789899
4598765310138921014968998799543987893298964989547598920986598989139999878999964346891249876597898798
3459977731257893929899987578932498932127893499987699439877487568998899989998894234979957987989987667
1349998643467899896798795467890239643456789989998789949765326489987688993986789124567899299878975558
2498997654989998765987654356789349954677999878999899899874212378996577992975569012398965499767894346
3987898775894359979879864236789998766789998767999998799763104569987456789864398923579896987656789235
9876769986789469898765432045898889898999987658989987698654323779594357897953287899798789199867890123
9965454599897698759979564157976778999549876547679997569976457899492166986541026678987679013979989245
9895323457998987646898783298965767889698984328456789678998569978989234598632134567896589999989569346
9789912345689865435789894369893453978987653212359899899659698767878945987654346889995459887694458956
4567895456792979524699965456792012367998864434578956999543987654667896899865456799984349765532347897
3458976569891298912349876768943224459899976646789643598759876543456789942987869899873298654321236898
4567898678932987899457989879654569598765987757899656999978965432346789321098989998764459876434345789
5678979989743976798967899989975998949654598868998979889899976321245678993129894329878689999545457890
7989467999654984676978979995989877929012679979987998775667895452356799789298789212999894298956567891
8992346898795993235899767894598765698934567899876798654356789673459895678999678923457996987899678943
9321456789989892124688956943987654567896989998754987654234678984578954569987546894678989976778999894
5432357899877789013467897899876543458987999986543499875345689875699875979876435689789976564569986789
6643567998765678925678998921965432356899998775432986985456789996989989898986546798998765423678965799
7656798989874567899789239939954321245689987654301995496677899989879998787897657956879876534569754589
8799989878965678969899197898765534345796976543219876398889999976767987656789878945265987875678923578
9988679769876789354998976989977545656895987654323981239995598765459987545879989432123498976799999989
9876544346989992123987755678989656767976798765549854346894398853298766434568996553464569989895878999
8765321235898765019986543567998787889989899876898765557995987632129854323799998779878978999964567898
9865210756789654198764332456789898995499986989969886768989976543298765545678989890989989987653456796
9954331987896543239954210167899949543298765497656998879876987655689876677899678941293293496542397895
9878543499987654549865423456789434956099979987542109989765799876796997798975568932999101987921789954
0987654567899765669876534667894329899989998699667825699924678987895498999544456899788992498932678965
1298776778969896789987645789987498788778987579878434578912457899989399987732345987656789598753489999
2399897889759997898998756899876569679567898434989545678901238998777989996543469898745578979767598977
3989959999898789997899768965989698546456789023497676989893349897665678987674579764323499767978797866
9879943209986577976789979554698987635349892144998989899799599786564567998799699987635789945989976545
8967894398995456895678989323597654321298943359889998789688987655443468899987989996546899896799765434
6456889987654329923499994312398987310987894498767899643567898543312356789876478987756789789899876323
4345679298799498936567892101269876499896789597656978942456798652101235799985356899877897679998764212
6456792139898967897678943242456987987685678976545767896599899964214546987876237978998943589987673101
6597891098987856789989655443999998998534889995434456789678999876323459876432123467899532359876543212
7989989987986537892198987679878999359676899876212347898789998765459698765421012346789643469988654357
9875778976897429799097899798767893298787976998455456789897899887678789886532326459899864578998795469
8734567895976535678986789999656932109899954597568567893956989998789892998693434667899975689659986778
7623478997898545789765999978946893919976895698978879912345678999999953489784546899969876789545698989
9537889429987667893986798767835679898965998789989989895456989988998764569875657894356997896432129699
7545789512399878912498996553124598787996789899999996789567899876789897679997798965767998954321013578
8657897623943989993569987431013987676789999998999875679679998685679999789898899999879329765432125689
9767898939894599989689876548923976465678999987899754579999997544334989898789939879998919876654345678
9879999898789798868999987857549875334589998965999843267899876432123778987679549967897899988765457999
0989987656678987656999898967659854213699987954889954345913987621014569876578998756786989999896769999
1995495434589998745799769879898762104789986313767895876799599737123498787366799546565679953987879989
9896989213478999856987656991999873215678965301456789989897498976544987643245678931344567894599998767
8789878923568998767897543210197654323489987212345789998996597899656799732124578920123456789999987543
7678969894567899898987654321298776564599654323456799986579986798967899541013467894234567896789195432
6569548789878999979898767435349987676678998764678919877498765677898987643144588986785798935691019541
5478934678999298765789998576467898887789999875799101954329854356799099653234679997996799123899998652
6569325466789398754679459988568989998999987986945919976598754245689198754556789998987893254567899768
7678912345696497643496578998679678999249876597896898899987543134568979877667897899998919875678999879
8889101236797989821989679999893479892129765439987987678998621012799456998988945697989323997899999989
9993257345899878992978989987932356789934984321099934589987542133789349899399239976878934998921989892
7654347867898768789767892196544577897896976439198755698999653234679298789210198765767895789999876791
9987656789999654578957899987666798935679897598999978797849796546892987678921349864656899899989965689
4698798898998767689437578998977899219789789987890989975435987698921097586893998953245699999878454597
2789989997899898992126459899998954398998678956921298765424698789992975435689897965369789999967323456
0299878876789939987012346789879895997879567897932398654313799996789987645796756896878999989654212359
1998765655678921096543458993456789876565456789545459432102987435678999856965945899989659876532103498
9898754434589432987678967912345678985434234698957897643219876323899899767893126788994345987678924997
9769963124678943498789978901956789976321012567898998755698765439988799898941012767898659998799899865
8754321024569654579899989219897898765462133456789239976999876598767678989432123456998767899987678943
9865542147679765989999998998798929876873235578995346989899989987654557976553349567899879994598989432
7987653267889876794678987657689012989989356789996459897689998698842346898764498978978998989989996521
6699879879999987912459876543579934597699868996789598656579997569976456799879597899569987879979789632
5420989998999998923468987632456895987434989865678987643456896434988968899997986965498765468967579544
6532399987888999436567899854667989876425698954599986532397895423499879979996565894349876579656498965
7683469885467997598798998768788979654214567895789997710145694312345989767986434689456987896432367896
9794998764346789679919349889899868965323578976899865431236789103466797656975426896567898954521356789
8999899653235678989401239999987654596654567897946976642345678994567898943976545679878939863210145799
7898765432123499995319398989998768789785789989023497656466789789678989991297676789999329974321234889
6799899843435689989498987878999878999897894569199998787978997678999878989398988997988998765433445678
5679998656746797878987656767999989997959923478987899998989899789234569978989899656867899976587676799
4598789767899896569876645456789995986543205589876545679998789890124879767566798745556789597698787893
3286569898999954398765432367999764698996456991985434589988679932438998754375789432346993459789898932
3123489999989654249864321278998653499889599890997595699875497653546799663234598921268932499991999321
1012679999879953198765438989999767989778987649898989999954319865678987542159987992357921989432987990
4323578988767893239879567899899879865659897435789879887895402976799999531098976789467899878949876789
5434989976458994345998678958789998764349765324679664765986514987899976542987895678989998767895465977
6565789993256789469899989345678998765239896213469543224998695698989987669876474788999987656789213456
7679899864345896598754591257999987654345989304678942105789989999678998798765353567899986548678902878
8798998979656789689643210456897899765769878913567893987899879896545999899986212368898765434579924567
9987897898767998798754321567976788978998767894579954598999965689659898999875433456789976755989895699
8656456789878939899896432378965567899892459965678967999789897799998767879976557677899988767898799789
6543236989989921998989543599434458999751346798789878997668799998754354567987667789968999978987688991
7654345678997892987978994678912349998540125689898989786554677897643263566799789893457943989768457990
8767656899566789976567789899101257987631234599957897654323456986532102345899899954567891098654345789
9888987910345678985435678943212346799732545678945698986434678999543313476789929877678932139765456991
9999998931234589997523567894324578999843756789234579997876899987654574597894212998989653345989987890
-94
View File
@@ -1,94 +0,0 @@
{[<([<[[(<[({<<><>><()[]>}<(()())(())>)<(([]())){<()()><{}<>)}>][(((()<>)[{}{}]){<[]<>>({}{})})]>)[(({([{}[]]
{{[[(<[[[<[<<{()()}(<>{})>[<<><>>[[]]]>[{{[]<>}[[]]}<<[]{}>[<>[]]>]]([[[{}<>]]<<()[]>{()<>}>]([<<
([<{[[{{((([(<[]<>>{[]<>})<([]){<>{}}>][([<>[]][[]{}])])[[{{()[]}<()[]>}<{(){}}>]]]<{(<[{}<
(({(<{(([<[({([]())(<>())}{([]{})[{}{}]})]{(({{}()}{<>()}](<[]<>>(()[])))({[[]{}]<[]<>>})}>[[[{<<>[]>(()
[([<([{({{[{[([]{})[{}[]]][[{}{})]}<([<>{}]<<>()>)>]}([<{[()<>]{()<>}}[[{}{}]<(){}>]><{{{}[]}[()<>]}[{{
<(([<{{<(<[(<{()()}>(({}()){()[]}))<[<[]()>[[]()]]<{[]()}<<>{}>>>](<[([]())]>(([()()][()<>])({()<>}<[]<>>))
[{({<(<[{({{{[()[]](<>[])}{([]{})<<>{}>}}}{{<<{}[]>(<>)><(<><>)([]())>}<{({}<>)(<><>)}{[{}{}
([(<{<[<{[({[<[]{}><<><>>]<({}[])({}<>)>}([{{}<>}<[]()>]<<<><>>>)){({<<><>>[[]{}]}(<()<>>{()}))<{<[
({{([(<{{{{{{([]{}){<>{}}}}{<<()>{{}{}}>[({}())(()<>)]}}[[[[{}{}](<><>)]{<()[]><[][]>}](([[]](()()))<[[]
(<<[<{{{({{<{{(){}}{<>()}}<({}{}){[][]}>>[{<[]{}>{<>()}}<{[]<>}[()<>]>]}}({([({}[])(<>{})][{<>}])[{[()<>]<{}
{[(<<((<[[<{<{<>()}[{}[]]>}{{((){})[()<>]}<{(){})[{}{}]>}>]({((<<>()>){[<>()]{{}()}}){{[()()][<><>]}
{(((([[(<[({({{}()}[<>[]])<(<><>)([]())>}{<[[]<>]><<()<>><()<>>>})<[[<[]{}><<>{}>]]>]<<{{[
[{(<[[(<(<[{<({}[])<{}{}>>(<[]<>>)}]<{(<[]()>[()()])}>>{({<{{}()}[<>()]>})<[[(<>())(<>{})]{{{}[]}}][({{}[]}
{[[<([{[(<<[<<()()>[[]]>[{()()}]](<[()]<()[]>><<{}()>{()()}>)>><[[([{}<>]{{}()})<{{}[]}<()[]>>]]})[([{{{<>()}
((({[(<<{(((<<{}()>><{<><>}>)))[[{<({}[])[{}[]]>}(<[<><>][()()]><[[][]]<{}[]>>)]]}((({<(<>())>[({}{
{<{{[(<<{(<{[({}<>)<{}[]>]([(){}](<>[]))}<(({}()){[][]}}[<()[]><{}()>]>>)}<<{(<[{}()]{<>{}}>[[[]()](()
{(<<({{([<[<[<{}<>>{[][]}]<[<><>][()[]]>>{(({}{})){<()><()()>}}]>(<({{()()}({}<>)}<([]<>){[]{}}>){([[]<>
<(<({{{([({{<<{}<>><()[]>>[{()<>}[<>{}]]}})({([{()[]}{(){}}]<(()<>)<{}<>>>)}<{{<{}<>>[[][]]}}<[{<>}[<>
{({{(<<([({{[(()<>)[[]<>]][(<>{})({}())]}})]{(<[<(<>()){<><>}><<{}()>[[]]>][{{<>()}{[]()}}{[()<>]{<>()}}]>)
([<({{{([[<<[[()[]][<><>]]<<<>[]><()()>>>(<{()<>}<()[]>><{<>()}<[]{}>>)>({(<()[]]<()()>)<[<>()][{}]>
{[{<((<[<<({<{[]{}}[()()>>({[][]}[[]()])})(([{()}{{}()}]<<{}()>{{}{}}>)<([<>()])(<{}<>><{}[]>)>)>{[{
{{([([{(<[[{[{()<>}({}())][[[]<>]<{}{}>]}]<<[({}[])(()<>)]({(){}}[()()])>{{(())<(){}>}}>]{[<{[[]()]{<>[]}}
<(<({<{<<<([<([]<>)([]<>)>]<{{{}{}}<<>()>}>)<<{[[]()](<>{})}(([]())<[]()>)><[{<>{}}[(){}]]>>>>>(<{<[[[{
(([({<{(<{[<({<><>}){{[][]}}>{<([]()){{}{}}>[([][])<{}{}>]}]}[((<{()<>}>)[{{()<>}{[][]}}])]
(<<<(({{{([[<{(){}}>{(()())(()[])}]{({{}[]}<[][]>]<{{}<>}{()}>}])<(({[[][]]{{}{}}}(([][])<(){}>)
{<{{[[({<<{{({{}()}({}{})><[()<>][<>{}]>}([<()[]>({}())][{()<>}[()]])}{<[{(){}}<[]{}>][[[]<>][[][]]]>([[<>]
{{{[(<([[[[{[[(){}}<{}>]<{<>[]}{{}{}}>}]<[[(<>())((){})]((<>()))]{(<[]{}>([][])){<[]<>>(()[])}}>]
(<{[([[<(<[<{[<>{}]}(<[]<>>{{}<>})>[{(())}]]>){<{(<(<>())<{}()>>]}({<<[]<>>[[]<>]>((()<>)[<><>])}
[<{[[(({([((({[]{}}[()()])))]>[((<<[<><>][[]()]>{[()<>][()()]}>({{<>[]}({}<>)})))]})){((<[<[<[<>()]>
<({[{{{<{[<[({[]{}}<[]>)(({}[])({}<>))]><{((()()))[[()<>]{<>[]}]}(<((){})<{}{}>><({}[])>)]][([<{
<(<<<<<[(<<[{{[][]}{{}{}}}{{[][]}<()>}](<([]{})[()[]]>[[{}{}]{<>()}])>([{[[]()]<<>[]>}[<<>{}>{<>
<(<[[<[[[<<(<(()[])<{}()>><(<>{})>)[([{}{}]([]{}))]><<<[<>[]]{<>[]}>{(()<>)({}[])}>>><[[[{<
([[{[({<({(([<(){}><[]<>>]<{()<>}({})>))([([{}<>][{}[]]){[<>[]]({}<>)}][[({}[]){[]()}]])})>[({{(<(()[]){<>
<[<{<[{(<<[[{{(){}}({}<>)}<(()[])>]<<<()()>(()<>)>({{}})>]({[(<>{})<{}()>]{<{}<>><<><>>}}<<{()<>}
{[{({[[(({{{{<()()>{[]{}}}{[<>[]]<()<>>}}(<<<>()><{}<>>>({()<>}[()<>])}}{<{[()[]]{(){}}}>[<<[]{}>>[((){})<(
{{(<[<(<(<{{(<[]()><()<>>)}{((<><>))[<<>{}>{()[]}]}}>{{<({{}{}}[()<>])[<(){}>(<>[])]><<(<>{}}[{}
[{{{[[[[{(<{<[<>[]](()[])]{{<>{}}}}{[(()()){[][]}]{([][])}}><<{<<>()>([])}[[[]{}]<{}{}>]>(([{}<>]<[]()>)
{[[(<([[[[((({<>{}}(<>())){<{}[]>})[([<>[]](<>[])}[({}[])([]())]])([<{{}()}(<>())><[[][]][<>()]>][([()()]<<>[
<[{[{({(<(((<<<>{}><[]()>][{{}()}{[][]}])[(((){})([][]))[[()<>][[]{}]]])[[(((){})[()])[[(){}]<{}
[{[[<[<{{(({([(){}]<()()>](([]<>)[()[]])}<<{[][]}([][])>>)<[[([]())<{}[]>]]>){[[[{{}()}[<>[]]]{<[]{}>
[[<([([[<<<{{[{}[]][<><>]}}{{{{}{}}}}>>>[([[(<<>[]>({}<>))<([]())<<><>>>]{{<<>[]>{<>()}}}][<{{[
({[<<<((<<<<<<[]{}>[()()]>{[()[]]{()<>}}>[((<>()){()()}){<[][]]<{}{}>}]>{{[[{}{}]<{}[]>]([[]<>])}((
({<<[[{{<{[[{<()><<>>}<<()[]>([][])>]]([[({}<>)[()[]]](([]{})<<>[]])]<[([]<>){[]}]>)}(((<<{}[
<(<(<(([([[[{{[]()}{<>()}}{<{}[]>[{}()]}]{{[{}{}]<()[]>}({<>()}<(){}>)}][[{<{}()><[][]>}](<[
[[<{<[<[<({<<{[]}<()<>>>({<><>}{[]<>})><([<>()]([][]))>}[({[{}{}]<{}[]>})({[<><>]})])>]([[{<({
<([{[[<<[({<<[{}()]({}[])>{<[][]>{()()}}>{<(<>[])([]{})>([{}[]}[<>])}}{{[<<>[]>{[]<>}][([][]){{}{}}]
[([({((<[{{{[<{}><<>()>]<<()[]>>}<[{{}{}}([][])]{{()<>}<(){}>}>}<{<[[][]]>({{}<>}{()[]})}>
[[[{([({{{<{[[[][]]{()()}]}{{<<>[]>[{}[]]}[[[]()]<<>>]}>({{(<>[])[{}[]]}({<>()}[{}[]])}{{(()<
{<{{{<[{[<{(<{[]{}}{[][]}>{{[]<>}}}}[{((()[])<()()>)[<<>[]><{}()>]}<[{<>{}}[()<>]]<[<>[]][<>{}]>>]>[<[
<[<{[[<{<[([{({}[])(()<>)}[[<>()]{()[]}]])][[<{[<>[]][<>[]]}<{<>{}}{<>{}}>>{<<()()><()<>>>{([]()
<[{{({<[<([[[([]{})({}())]]<[{{}}[()<>]]<{<>{}}{()}>>])<[<[<<>()>]{<{}{}>[[]<>]}><({[]()}<<><>>)[(()<>)(<>())
{<[[[<(<[<{<({<>{}}[<><>])([{}<>]<[][]>)><<[(){}](<>[])>[({}[])<<>[]}]>}{{{(<>())(<>{})}}<((<>())
<{(<<[{[{<{<<((){})[[]{}]><([]<>)<{}[]>>>{[[[][]]<()()>]}}{({{<>()}<<>()>}{<{}<>><()[]>})}>}<[<([<()()>{()()
{{([<{[[((<<{<<>()><<>[]>}<(()<>)>>><<[<[][]><{}<>>]>{<([]()){[]<>}>}>))]<{(((<[[]<>]([]<>)>[{{}()}<<
([{{({{<[[(((<[][]>{<>{}}){<()[]>{[]()}})(<({}<>)([]<>)>(([])[()<>])))(([([][]){()<>}]{{[]<>}{[](
[{{<{({[<{<{((<>())({}[]))<{<>()}({}[])>}(<[{}()]<{}<>>>({[][]}{()<>}))}{([({}[]){{}[]}]<([][])>)}}{<{({{}(
[{(([[[([<<(<([]()){<>}>(({}<>)(()())))[((<>{})){[()<>]<<>{}>}]>>][<{{[<()<>>{{}[]}]<<{}[]><{}[]>]}[
{<<<(<[<[{<[<({}[])>(([])<[]<>>)]<<<{}{}>({}())>{[<>{}}<[][]>}>>[{[<<>()><()()>]{[<>[]]<[]>}}[<<<>[]>{[]()
([(((<<(<[[<[<{}<>>(<><>)]>([<{}[]>{<>{}}]({<>{}}[()()]))]](<({<<>[]>({}[])}<[[]<>]{<>[]}>)(<{
([{({{{[(((<<{[]()}<{}<>>>((<><>){[]()>)>({<{}()><(){}>}<[<>()]>))){((([[][]]{<>{}})[([]<>){<>[]}]
<(({{{[(([<[{<(){}>([]<>)}(<[]><()<>>)]><<([()[]]([]()))>{[(()<>}<{}>]}>]){{[{(({}{})<(){}>){[[]]{[]
[<{(<({<{((<<<[]<>>([]())>(((){})[[]()])>{[[<>]<{}<>>]}){[<[<>[]]({}())]{{()[]}<()>}]})<([[([]())<<
[[<<[<{{[{({<[()<>]{<>[]}>{([][]){<><>}}}<[[{}()]][<<><>>{{}[]}]>)}{<{{({}<>)(()())}[{{}{}}[{}()]]
({<({[{[{(([<<()()>{<>[]}>[([]<>)<()<>>]]{<{<>()}[{}{}]>((<>{}){<>{}})})([<([][])[[]{}]>(<[]()>{<>
{[[((<{[[<<({<[]<>>[()<>]}{[()]{<>}})>[<{<<>()><()[]>}{{()[]}<()<>>}>(([{}[]]))]>[[{({<><>})}
{{(<[{{[{<[({(()){{}<>}}(<{}[]>[[]()]))]>}({(<((()[])((){}))<{<><>}[<>()]>>)}(<<[(())<{}<>>]{[[]]<{}
<{{([<<<<[([<[<><>][[]]><<(){}>[()()]>]<{(<><>)<<><>>}([{}{}])>)][[([<()()><<>()>])(({[]<>}([]{}]){<[]><[]
{(<<[[<{{((([<[]<>>[{}<>]][([][]){{}{}}>)(<<<><>><[]{}>>{{(){}}[<>{}]}))({<(())[<>()]><{<>{}}(<>[])>}(({
[[[([({([<<[[[<>{}]{<>{}}]<[<><>]{{}<>}>]>[({[()()]<<>()>}{[()()][{}()]}){({{}()}[(){}))}]>[(<{[()<>
[{{(<<<[{(((<<()<>>([])>({<>{}}<()[]>)))[{(([]){()<>})(({}[])<{}})}<{([]{})({}())}<(<>[])<<>[]>>>
{<<<<[{[{({{[<<>()><{}[]>]<[[]{}][{}{}]>}(<({}{})<()<>>>{{()<>}})}{[[{{}{}}[{}{}]]<[<><>](<>{})>]})(([{[<>()
<(<[<{(<{[{<{[[]{}]{{}[]}}>[{[[]<>][{}{}]}(([]())(<>))]}<{{[{}{}]([]{})}[({}())]}{<<<>()>>([(
<{{[{[<{[[<[{<[]{}><<>{}>}]{({()<>}(<><>)){[<>[]]}}>{([[<>{}]({}{})](({}{})<[]{}>))<{[{}<>
{{<<{<<<[{[[([[]()][()()])(({}()))][[({}[])<()()>]]]{<[<{}[]>{{}{}}]>}}[[[[([]())]([<>[]][[]{}]>]]
[[<<[({{{(<[(<()<>>[<>])]([(()<>){<>())]([<>[]][[]<>]))>{{[[[]()]([]())]{<[]{}>{()<>}}}[<([]<>)<()>>({<>{}}[<
([[([<{<[<((<(<>[])(<>[])>(<<><>><{}[]>)){<<{}<>>>({{}{}}<()[]>)}>[{{(<><>)(()<>)}[<<>[]>]}]>]<{{
{{{((<<{[[{<([[]{}][{}<>])>}<[((()())<()<>>)[[[]{}]{[][]}]]<<<[]{}>{{}[]}>(<<>()><(){}>)>>](<
{(([[{{<[[<{(({}<>)[<>[]])}<{({}{}){{}}}[[()[]](()())]>>]([<[{()[]})({<>}[<>{}])>{[{{}{}}{(){}}]{<{}{}>}}])
{([(<{<<({[<[{()()}<[]<>>]{<[]{}>}><[[<>][()<>]]>]{<{{[]{}}<(){}>}[({})]>{{<{}{}><()<>>}([{}
{{[[({{({[(([{{}()}[{}]]({{}<>}([][]))){({{}<>}[[]{}])<<()<>>>})]{(<[<{}{}>{<>()}](({}())((){
{<({{<<{{([{{{[]<>}{<>{}}}((<><>)<()<>>)}[<[{}<>][()[]]><[<>()][<><>]>]]{{[[()<>]<<>[]>]<(<><>)
<(<[(<<[[<<<[({}())<[][]>](({}<>)[{}<>])>>[<{{{}}<()<>>}<(()<>){{}{}}>>]>({{<[<><>](<><>)>[(<>{}
[((<{[{{(<{[({{}[]}((){}))([[][]]{<>[]})]<{<{}[]>[{}<>]}[<{}()><{}<>>]>]>)}}]}{{{(<[(<{{()()}}>{[<{}<>><<>[]>
{([<<{(<([[({{{}<>}<(){}>}<<()[]>{<>{}}>)((<[][]>[<><>])<<[][]>{<>()}>)]((<{<>[]}{[][]}>[[<>()]{<>[]}]]{{[
[<{(<{([{{(([<<>()>]{<(){}><()<>>}){(([]{}>)<(<><>)>})}({({[<>]{<>[]}}[[{}<>]])}[{<[()[]]<{}<>
{[(<(<{(<<[{[<[]()>(<>[])][{{}}[()[]]]}{{[[]{}]{()()}}<<<>>[[]()]>}]>{{<[<{}()>([]())]({(){}}(()<>))>([(<>(
{{([[([[[<(({<{}<>>[<>[]]}{([]<>)<<>{}>})<{{[]<>}{{}<>}}([()()]<<>[]>>>){{[[()<>]]<((){})<[]{}>>}{<<[]<>><()
<({([[[[[({[[{{}<>}({}<>)]({<>[]}[<>{}])][([<>[]](<>()))<([]())[{}{}]>]}(((({}[])[()[]])[{{}{}}(<>)])(<<<>
[({{<{[([(((<{[]{}}{<>()}><[{}<>>{<>[]}>)){([<{}{}><()[]>]<([]{})[{}{}]>){{[[]]<[]{}>}((()[])[(
(({<[<<{{[[<{(<>{})([]())}([[]{}]{{}()})><[<{}()><{}{}>]<<<>()>[[]()]>>]<[<<()[]><<>()>>[{{}<>}[<>]]]>]
((<[[<{{{[({<(()[])<()<>>>})]{<(([()()][[]]))({[[]()]{[]<>}}{[<>()]})><<(({}[])[{}{}])>>}}}[[[{{{{[]{}}({}[
([<[<{{{{[<<{{<>[]}([]<>)}><{{()[]}[<><>]}{<[]>[()<>]}>><{[{[][]}<()[]>]({[][]}(()<>))}<{(<>())(
{((<(([[<[(<[{()[]}([]())>>[<[<>()]<[]{}>>(<()<>><[]>)])<(<{()}>(([]<>){<>{}}))<[[[]<>]{[]()}
[(<[([([{{{<([[]<>]<<>>)[{<>[]}{{}<>}]}({(())[{}()]}[<{}<>>{<>()}])}([<[(){}]([][])><(()())
-10
View File
@@ -1,10 +0,0 @@
7222221271
6463754232
3373484684
4674461265
1187834788
1175316351
8211411846
4657828333
5286325337
5771324832
-23
View File
@@ -1,23 +0,0 @@
pn-TY
rp-ka
az-aw
al-IV
pn-co
end-rp
aw-TY
rp-pn
al-rp
end-al
IV-co
end-TM
co-TY
TY-ka
aw-pn
aw-IV
pn-IV
IV-ka
TM-rp
aw-PD
start-IV
start-co
start-pn
-915
View File
@@ -1,915 +0,0 @@
938,670
246,156
622,476
137,296
708,323
1019,283
415,505
1043,234
666,871
157,893
969,266
1280,690
987,260
296,428
1302,361
92,168
206,204
937,659
551,488
147,456
1279,42
463,154
407,266
1153,893
495,372
733,459
378,169
48,705
31,852
577,571
36,672
1014,661
441,880
1305,791
115,553
455,267
360,833
915,455
346,53
606,367
1014,513
930,633
190,350
564,577
1205,376
928,462
577,435
825,686
517,598
782,119
1110,539
67,236
77,185
577,723
808,855
139,742
865,414
159,522
1159,626
440,58
743,505
252,502
1190,659
855,521
1094,185
798,176
1114,61
174,695
427,581
161,670
74,222
1250,829
930,261
398,497
541,47
340,102
1057,614
820,753
1057,453
1158,141
492,499
267,234
642,568
904,586
1274,47
169,781
241,164
1037,621
50,254
44,63
388,561
1099,522
1255,809
736,171
1139,145
323,708
928,686
527,851
478,771
895,505
320,455
156,268
787,399
1136,695
150,751
252,537
1242,631
468,40
436,208
380,261
324,3
954,93
946,504
991,817
604,177
565,348
705,406
89,38
735,418
234,161
880,0
956,553
523,847
654,753
946,266
465,822
768,282
3,5
18,513
758,737
980,639
1248,725
1250,570
807,716
1138,375
1076,354
922,561
417,434
831,626
115,861
1255,710
793,473
77,499
964,169
989,343
875,183
758,224
398,397
1208,670
903,266
77,403
82,176
427,313
139,152
810,550
577,619
867,665
443,665
485,775
272,686
196,833
291,163
1029,387
1221,38
1019,611
544,78
299,826
1289,854
1160,751
1230,469
408,290
1056,176
281,507
170,828
18,828
1175,329
539,413
698,764
373,59
433,376
1020,504
85,771
151,716
934,245
172,792
383,78
1223,725
348,278
3,453
152,525
1037,618
1197,686
319,749
328,318
623,42
1258,521
441,14
862,802
1233,459
1140,791
994,509
417,262
517,712
1029,507
52,821
984,133
1120,96
1186,764
482,760
1114,754
190,96
728,494
1071,602
1019,122
92,726
1221,856
710,686
1140,49
485,208
661,775
774,511
154,123
383,816
986,3
455,409
200,614
584,749
616,662
493,353
572,649
80,171
932,177
1237,614
574,171
480,247
656,193
1153,449
502,257
1303,632
733,403
1274,672
872,515
219,631
353,9
1020,47
683,602
62,169
734,586
325,614
482,323
1160,143
987,5
982,766
1115,495
1086,894
441,546
816,675
1272,662
929,618
865,480
237,262
729,728
1197,159
880,289
68,148
816,227
924,198
113,686
704,245
745,486
500,550
510,824
817,353
708,571
1021,77
929,276
704,79
1061,51
1002,514
351,152
934,693
216,709
736,469
130,385
1221,546
276,254
1054,556
1164,7
2,107
812,626
610,383
1069,164
738,848
462,73
618,579
299,516
126,775
415,389
1044,113
1115,47
1062,586
746,129
976,397
1309,166
602,323
494,227
888,820
835,662
728,400
1009,397
410,718
273,618
253,453
865,59
528,775
1002,380
224,446
1305,327
364,166
189,744
67,658
1307,67
572,848
957,9
454,602
743,837
811,593
113,882
77,275
1232,138
482,326
216,653
987,827
984,761
1121,150
90,765
274,323
701,123
308,514
1159,178
80,723
1154,268
1255,16
20,77
745,856
729,726
628,229
475,662
120,659
1091,711
688,476
500,312
408,171
996,543
323,453
826,66
508,775
89,632
601,52
686,18
638,455
1094,67
562,509
102,593
517,312
435,263
594,829
930,323
1073,348
524,509
659,653
895,690
443,372
1149,670
763,408
160,227
36,628
571,28
687,70
1307,889
200,539
87,243
818,753
1230,873
152,173
408,738
219,711
890,845
606,79
1168,77
1200,78
688,154
335,184
629,173
793,712
318,571
769,686
1310,141
234,354
3,403
155,322
579,516
706,53
977,241
1178,652
1054,637
5,791
316,593
681,528
226,152
838,53
316,301
947,283
647,262
833,427
1014,233
1058,502
562,207
224,894
836,775
869,14
256,273
541,686
1227,345
1074,99
92,562
489,306
1149,801
172,760
811,301
1230,425
512,718
1084,152
213,14
813,445
628,665
1011,516
850,773
21,40
1033,406
783,43
719,840
1225,164
219,152
1222,173
1038,686
236,99
1220,99
761,824
909,814
740,756
676,278
219,183
1218,168
1233,485
281,682
403,465
672,455
1037,276
649,775
622,292
1303,262
435,94
68,631
402,201
326,133
574,51
986,891
1120,350
912,621
970,792
549,824
253,677
536,292
1290,177
28,190
356,93
842,40
769,208
653,877
1215,460
803,8
1262,245
417,348
865,507
1116,325
580,828
314,211
1233,185
582,624
818,499
661,464
726,749
933,488
77,459
604,702
454,7
435,711
416,873
1130,439
137,312
113,208
582,494
1138,102
924,310
281,387
569,663
652,143
353,885
602,633
816,219
606,649
191,565
55,464
846,96
422,759
253,441
560,311
36,679
1290,525
1158,173
333,775
704,649
527,857
692,579
72,176
584,690
562,687
1121,822
599,246
319,593
1124,488
657,877
457,675
1179,266
668,568
577,171
170,845
865,387
452,578
174,141
119,203
70,674
745,348
12,326
1240,749
239,389
574,313
709,52
542,282
31,824
110,368
182,219
353,437
755,133
1029,212
571,866
494,675
715,212
920,844
1181,667
704,525
20,369
729,814
1168,176
290,119
1196,143
748,338
1183,25
221,376
1258,883
331,226
700,383
731,516
649,430
227,502
783,3
959,152
440,836
726,369
70,749
1171,152
897,388
154,344
661,430
994,385
507,8
800,70
739,345
1192,511
478,751
853,890
298,821
808,39
687,852
254,176
127,473
1195,553
733,619
214,58
788,793
723,455
465,150
10,471
373,235
623,294
281,212
1016,173
912,257
1061,388
1190,235
546,656
378,389
676,616
1240,397
783,409
400,64
569,282
1292,841
663,262
1262,705
457,4
1232,308
226,742
649,327
952,381
567,651
724,263
940,316
956,240
53,500
1298,326
1016,866
1223,690
688,292
1076,332
632,782
454,740
131,495
152,141
989,653
189,488
1086,224
1072,873
651,515
870,58
932,169
1258,409
700,511
769,735
5,567
321,241
200,740
576,586
581,726
303,742
132,652
1014,428
380,633
330,815
73,280
1207,488
536,511
902,604
446,852
448,11
77,485
594,65
1039,78
708,11
482,550
331,345
373,771
333,103
959,742
1220,795
36,215
848,821
726,145
482,568
682,665
937,771
298,353
774,383
28,373
826,49
364,266
716,0
883,581
1094,795
212,306
136,789
401,814
659,889
422,74
541,208
20,817
364,728
785,785
937,212
1104,204
74,290
855,309
7,856
587,439
663,38
174,199
282,679
1120,798
845,582
290,847
92,332
1243,236
1020,266
443,105
497,449
728,270
124,764
1280,513
535,203
741,771
278,201
708,633
599,269
842,854
994,301
18,841
324,891
480,641
740,138
95,882
734,308
577,282
793,296
932,389
705,488
52,521
180,455
1190,540
581,814
420,637
160,667
478,359
190,798
150,143
130,826
89,348
569,123
771,301
853,442
1146,753
733,395
348,333
441,287
216,99
3,67
176,183
547,856
68,711
605,406
544,627
105,152
856,103
1032,201
618,131
599,878
604,841
1233,275
479,626
1151,522
21,854
668,543
1028,740
113,159
746,577
586,863
1247,840
272,208
201,138
249,58
159,372
87,725
776,540
907,579
1099,677
468,854
748,687
303,152
1094,241
52,373
85,739
48,189
52,883
157,445
430,0
185,234
127,627
6,887
527,627
582,176
1118,521
216,67
386,198
1150,227
172,344
687,600
120,690
387,712
1203,632
888,123
689,676
468,488
933,770
199,267
256,497
586,263
895,389
110,627
479,268
741,730
694,232
666,301
704,490
129,667
1242,711
830,641
194,325
618,315
910,64
1052,298
1171,742
869,546
1153,880
1148,128
381,173
1233,11
1240,130
103,488
274,267
402,693
594,381
495,267
246,425
1292,268
602,37
539,677
793,421
711,16
89,856
1073,460
1020,180
763,856
438,205
365,817
1210,600
372,224
135,565
853,452
239,242
363,283
1079,348
142,176
107,632
534,242
530,130
142,77
1290,77
1218,385
249,51
214,57
687,42
972,77
1173,296
808,305
813,1
1225,155
333,791
774,607
1300,23
1140,103
340,550
154,582
10,423
38,662
565,856
354,688
333,241
1256,208
272,656
736,51
880,672
1145,894
1022,379
566,721
668,102
503,716
912,497
610,511
1292,828
282,222
22,782
572,718
fold along x=655
fold along y=447
fold along x=327
fold along y=223
fold along x=163
fold along y=111
fold along x=81
fold along y=55
fold along x=40
fold along y=27
fold along y=13
fold along y=6
-102
View File
@@ -1,102 +0,0 @@
PHVCVBFHCVPFKBNHKNBO
HK -> F
VN -> S
NB -> F
HF -> B
CK -> N
VP -> B
HO -> P
NH -> N
CC -> N
FC -> P
OK -> S
OO -> P
ON -> C
VF -> B
NN -> O
KS -> P
FK -> K
HB -> V
SH -> O
OB -> K
PB -> V
BO -> O
NV -> K
CV -> H
PH -> H
KO -> B
BC -> B
KC -> B
SO -> P
CF -> V
VS -> F
OV -> N
NS -> K
KV -> O
OP -> O
HH -> C
FB -> S
CO -> K
SB -> K
SN -> V
OF -> F
BN -> F
CP -> C
NC -> H
VH -> S
HV -> V
NF -> B
SS -> K
FO -> F
VO -> H
KK -> C
PF -> V
OS -> F
OC -> H
SK -> V
FF -> H
PK -> N
PC -> O
SP -> B
CB -> B
CH -> H
FN -> V
SV -> O
SC -> P
NP -> B
BB -> S
PV -> S
VB -> P
SF -> H
VC -> O
HN -> V
BF -> O
NO -> O
HP -> N
VV -> K
HS -> P
FH -> N
KB -> F
KF -> B
PN -> K
KH -> K
CN -> S
PP -> O
BP -> O
OH -> B
FS -> O
BK -> B
PO -> V
CS -> C
BV -> N
KP -> O
KN -> B
VK -> F
HC -> O
BH -> B
FP -> H
NK -> V
BS -> C
FV -> F
PS -> P
-88
View File
@@ -1,88 +0,0 @@
package be.vandewalleh.aoc.days
import be.vandewalleh.aoc.utils.factory.findDayDefinition
import be.vandewalleh.aoc.utils.factory.registerExampleLoader
import io.micronaut.context.BeanContext
import org.assertj.core.api.Assertions
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.extension.ConditionEvaluationResult
import org.junit.jupiter.api.extension.ExecutionCondition
import org.junit.jupiter.api.extension.ExtendWith
import org.junit.jupiter.api.extension.ExtensionContext
class Condition : ExecutionCondition {
private val methods: Map<String, (BaseDayTest) -> Any?> = mapOf(
"part1 example result" to { it.part1Example },
"part1 result" to { it.part1Answer },
"part2 example result" to { it.part2Example },
"part2 result" to { it.part2Answer },
)
override fun evaluateExecutionCondition(context: ExtensionContext): ConditionEvaluationResult {
val methodName = context.testMethod.orElseGet { null }?.name
methods[methodName]?.let {
val instance = context.testInstance.get() as BaseDayTest
if (it(instance) == null) return ConditionEvaluationResult.disabled("")
}
return ConditionEvaluationResult.enabled("")
}
}
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@ExtendWith(Condition::class)
abstract class BaseDayTest() {
abstract val example: String
abstract val part1Example: Any?
abstract val part1Answer: Any?
abstract val part2Example: Any?
abstract val part2Answer: Any?
private val ctx = lazy {
BeanContext.run()
}
private val day by lazy(LazyThreadSafetyMode.NONE) {
this::class.java.simpleName.replace("Day", "").replace("Test", "").toInt()
}
val instance by lazy { ctx.value.getBean(ctx.value.findDayDefinition(day)!!) }
private val exampleCtx = lazy {
BeanContext.build()
.apply { registerExampleLoader(example) }
.start()
}
val exampleInstance by lazy { exampleCtx.value.getBean(exampleCtx.value.findDayDefinition(day)!!) }
@AfterAll
fun `after all`() {
arrayOf(ctx, exampleCtx).filter { it.isInitialized() }.forEach { it.value.stop() }
}
@Test
fun `part1 example result`() {
Assertions.assertThat(exampleInstance.part1()).isEqualTo(part1Example)
}
@Test
fun `part1 result`() {
Assertions.assertThat(instance.part1()).isEqualTo(part1Answer)
}
@Test
fun `part2 example result`() {
Assertions.assertThat(exampleInstance.part2()).isEqualTo(part2Example)
}
@Test
fun `part2 result`() {
Assertions.assertThat(instance.part2()).isEqualTo(part2Answer)
}
}
-22
View File
@@ -1,22 +0,0 @@
package be.vandewalleh.aoc.days
class Day01Test : BaseDayTest() {
override val example = """
199
200
208
210
200
207
240
269
260
263
""".trimIndent()
override val part1Example = 7
override val part2Example = 5
override val part1Answer = 1559
override val part2Answer = 1600
}
-18
View File
@@ -1,18 +0,0 @@
package be.vandewalleh.aoc.days
class Day02Test : BaseDayTest() {
override val example = """
forward 5
down 5
forward 8
up 3
down 8
forward 2
""".trimIndent()
override val part1Example = 150
override val part2Example = 900
override val part1Answer = 1938402
override val part2Answer = 1947878632
}
-24
View File
@@ -1,24 +0,0 @@
package be.vandewalleh.aoc.days
class Day03Test : BaseDayTest() {
override val example = """
00100
11110
10110
10111
10101
01111
00111
11100
10000
11001
00010
01010
""".trimIndent()
override val part1Example = 198
override val part2Example = 230
override val part1Answer = 3277364
override val part2Answer = 5736383
}
-31
View File
@@ -1,31 +0,0 @@
package be.vandewalleh.aoc.days
class Day04Test : BaseDayTest() {
override val example = """
7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1
22 13 17 11 0
8 2 23 4 24
21 9 14 16 7
6 10 3 18 5
1 12 20 15 19
3 15 0 2 22
9 18 13 17 5
19 8 7 25 23
20 11 10 24 4
14 21 16 12 6
14 21 17 24 4
10 16 15 9 19
18 8 23 26 20
22 11 13 6 5
2 0 12 3 7
""".trimIndent()
override val part1Example = 4512
override val part1Answer = 87456
override val part2Example = 1924
override val part2Answer = 15561
}
-22
View File
@@ -1,22 +0,0 @@
package be.vandewalleh.aoc.days
class Day05Test : BaseDayTest() {
override val example = """
0,9 -> 5,9
8,0 -> 0,8
9,4 -> 3,4
2,2 -> 2,1
7,0 -> 7,4
6,4 -> 2,0
0,9 -> 2,9
3,4 -> 1,4
0,0 -> 8,8
5,5 -> 8,2
""".trimIndent()
override val part1Example = 5
override val part1Answer = 6841
override val part2Example = 12
override val part2Answer = 19258
}
-13
View File
@@ -1,13 +0,0 @@
package be.vandewalleh.aoc.days
class Day06Test : BaseDayTest() {
override val example = """
3,4,3,1,2
""".trimIndent()
override val part1Example = 5934L
override val part1Answer = 373378L
override val part2Example = 26984457539
override val part2Answer = 1682576647495
}
-13
View File
@@ -1,13 +0,0 @@
package be.vandewalleh.aoc.days
class Day07Test : BaseDayTest() {
override val example = """
16,1,2,0,4,2,7,1,2,14
""".trimIndent()
override val part1Example = 37
override val part1Answer = 336040
override val part2Example = 168
override val part2Answer = 94813675
}
-22
View File
@@ -1,22 +0,0 @@
package be.vandewalleh.aoc.days
class Day08Test : BaseDayTest() {
override val example = """
be cfbegad cbdgef fgaecd cgeb fdcge agebfd fecdb fabcd edb | fdgacbe cefdb cefbgd gcbe
edbfga begcd cbg gc gcadebf fbgde acbgfd abcde gfcbed gfec | fcgedb cgb dgebacf gc
fgaebd cg bdaec gdafb agbcfd gdcbef bgcad gfac gcb cdgabef | cg cg fdcagb cbg
fbegcd cbd adcefb dageb afcb bc aefdc ecdab fgdeca fcdbega | efabcd cedba gadfec cb
aecbfdg fbg gf bafeg dbefa fcge gcbea fcaegb dgceab fcbdga | gecf egdcabf bgf bfgea
fgeab ca afcebg bdacfeg cfaedg gcfdb baec bfadeg bafgc acf | gebdcfa ecba ca fadegcb
dbcfg fgd bdegcaf fgec aegbdf ecdfab fbedc dacgb gdcebf gf | cefg dcbef fcge gbcadfe
bdfegc cbegaf gecbf dfcage bdacg ed bedf ced adcbefg gebcd | ed bcgafe cdgba cbgef
egadfb cdbfeg cegd fecab cgb gbdefca cg fgcdab egfdb bfceg | gbdfcae bgc cg cgb
gcafb gcf dcaebfg ecagb gf abcdeg gaef cafbge fdbac fegbdc | fgae cfgab fg bagce
""".trimIndent()
override val part1Example = 26
override val part1Answer = 303
override val part2Example = 61229
override val part2Answer = 961734
}
-17
View File
@@ -1,17 +0,0 @@
package be.vandewalleh.aoc.days
class Day09Test : BaseDayTest() {
override val example = """
2199943210
3987894921
9856789892
8767896789
9899965678
""".trimIndent()
override val part1Example = 15
override val part1Answer = 603
override val part2Example = 1134
override val part2Answer = 786780
}
-22
View File
@@ -1,22 +0,0 @@
package be.vandewalleh.aoc.days
class Day10Test : BaseDayTest() {
override val example = """
[({(<(())[]>[[{[]{<()<>>
[(()[<>])]({[<{<<[]>>(
{([(<{}[<>[]}>{[]{[(<()>
(((({<>}<{<{<>}{[]{[]{}
[[<[([]))<([[{}[[()]]]
[{[{({}]{}}([{[{{{}}([]
{<[[]]>}<{[{[{[]{()[[[]
[<(<(<(<{}))><([]([]()
<{([([[(<>()){}]>(<<{{
<{([{{}}[<[[[<>{}]]]>[]]
""".trimIndent()
override val part1Example = 26397
override val part1Answer = 294195
override val part2Example = 288957L
override val part2Answer = 3490802734L
}
-22
View File
@@ -1,22 +0,0 @@
package be.vandewalleh.aoc.days
class Day11Test : BaseDayTest() {
override val example = """
5483143223
2745854711
5264556173
6141336146
6357385478
4167524645
2176841721
6882881134
4846848554
5283751526
""".trimIndent()
override val part1Example = 1656
override val part1Answer = 1661
override val part2Example = 195
override val part2Answer = 334
}
-19
View File
@@ -1,19 +0,0 @@
package be.vandewalleh.aoc.days
class Day12Test : BaseDayTest() {
override val example = """
start-A
start-b
A-c
A-b
b-d
A-end
b-end
""".trimIndent()
override val part1Example = 10
override val part1Answer = 4413
override val part2Example = 36
override val part2Answer = 118803
}
-30
View File
@@ -1,30 +0,0 @@
package be.vandewalleh.aoc.days
class Day14Test : BaseDayTest() {
override val example = """
NNCB
CH -> B
HH -> N
CB -> H
NH -> C
HB -> C
HC -> B
HN -> C
NN -> C
BH -> H
NC -> B
NB -> B
BN -> B
BB -> N
BC -> B
CC -> N
CN -> C
""".trimIndent()
override val part1Example = 1588L
override val part1Answer = 3555L
override val part2Example = 2188189693529
override val part2Answer = 4439442043739
}
+2 -1
View File
@@ -1,7 +1,8 @@
plugins {
id("advent-of-code-downloader")
id("advent-of-code")
}
adventOfCode {
year = 2020
session = file(".session").readText().trim()
}
+5 -1
View File
@@ -2,12 +2,16 @@ plugins {
`kotlin-dsl`
}
kotlinDslPluginOptions {
experimentalWarning.set(false)
}
repositories {
gradlePluginPortal()
maven { setUrl("https://kotlin.bintray.com/kotlinx") }
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20")
implementation("com.konghq:unirest-java:3.11.04")
}
@@ -1,5 +1,3 @@
import java.io.File
import java.time.LocalDateTime
import kong.unirest.Unirest
import org.gradle.api.GradleException
import org.gradle.api.Plugin
@@ -7,12 +5,15 @@ import org.gradle.api.Project
import org.gradle.api.tasks.SourceSetContainer
import org.gradle.kotlin.dsl.create
import org.gradle.kotlin.dsl.getByType
import java.io.File
import java.time.LocalDateTime
open class AdventOfCodeExtension {
var session: String? = null
var year: Int = 2020
}
class AdventOfCodeDownloaderPlugin : Plugin<Project> {
class AdventOfCodePlugin : Plugin<Project> {
override fun apply(project: Project) {
project.tasks.create("aoc") {
group = "Advent of Code"
@@ -25,12 +26,8 @@ class AdventOfCodeDownloaderPlugin : Plugin<Project> {
throw GradleException("advent of code session not set")
}
val now = LocalDateTime.now()
val year = now.year
val currentDay = now.dayOfMonth.toString()
val resourceDir: File = project
.project(":$year")
.project(":days")
.extensions
.getByType<SourceSetContainer>()
.getByName("main")
@@ -38,9 +35,9 @@ class AdventOfCodeDownloaderPlugin : Plugin<Project> {
.srcDirs
.first()
val currentDay = LocalDateTime.now().dayOfMonth.toString()
val outFile = File(resourceDir, "day" + currentDay.padStart(length = 2, padChar = '0') + ".txt")
val url = "https://adventofcode.com/$year/day/$currentDay/input"
val url = "https://adventofcode.com/${extension.year}/day/$currentDay/input"
Unirest.get(url)
.cookie("session", extension.session)
+2 -2
View File
@@ -17,10 +17,10 @@ object Libs {
}
object Micronaut {
private const val version = "3.2.0"
private const val version = "2.2.0"
const val inject = "io.micronaut:micronaut-inject:$version"
const val core = "io.micronaut:micronaut-core:$version"
const val kotlin = "io.micronaut.kotlin:micronaut-kotlin-extension-functions:3.0.0"
const val kotlin = "io.micronaut.kotlin:micronaut-kotlin-extension-functions:$version"
const val processor = "io.micronaut:micronaut-inject-java:$version"
}

Some files were not shown because too many files have changed in this diff Show More