45 lines
1.2 KiB
Plaintext
45 lines
1.2 KiB
Plaintext
sample :: #string END
|
|
987654321111111
|
|
811111111111119
|
|
234234234234278
|
|
818181911112111
|
|
END;
|
|
|
|
main :: () {
|
|
content := read_entire_file("day3.input");
|
|
solve_first(content);
|
|
}
|
|
|
|
solve_first :: (input: string) {
|
|
total := 0;
|
|
for line: split(input, "\n") {
|
|
if line.count == 0 continue;
|
|
assert(line.count > 1);
|
|
biggest_first_digit := 0;
|
|
biggest_first_digit_index := 0;
|
|
for i: 0..line.count - 2 {
|
|
char := line[i] - #char "0";
|
|
if char > biggest_first_digit {
|
|
biggest_first_digit = char;
|
|
biggest_first_digit_index = i;
|
|
}
|
|
}
|
|
biggest_second_digit := 0;
|
|
print("-----\n");
|
|
for i: biggest_first_digit_index + 1..line.count - 1 {
|
|
char := line[i] - #char "0";
|
|
print("%: %\n", i, char);
|
|
if char > biggest_second_digit {
|
|
biggest_second_digit = char;
|
|
}
|
|
}
|
|
total += biggest_first_digit * 10 + biggest_second_digit;
|
|
print("%: %\n", it_index, biggest_first_digit * 10 + biggest_second_digit);
|
|
}
|
|
print("%\n", total);
|
|
}
|
|
|
|
#import "Basic";
|
|
#import "File";
|
|
#import "String";
|