mirror of https://github.com/HeNine/aoc2020
days 1-3
parent
3a0d07631d
commit
1562c726a5
@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "day1"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["henine <matija@rezar.biz>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
@ -0,0 +1,200 @@
|
|||||||
|
1993
|
||||||
|
1715
|
||||||
|
1997
|
||||||
|
1666
|
||||||
|
1676
|
||||||
|
1830
|
||||||
|
1203
|
||||||
|
1800
|
||||||
|
1125
|
||||||
|
1191
|
||||||
|
1902
|
||||||
|
1972
|
||||||
|
1471
|
||||||
|
1137
|
||||||
|
2003
|
||||||
|
1250
|
||||||
|
1548
|
||||||
|
1070
|
||||||
|
1152
|
||||||
|
2004
|
||||||
|
1127
|
||||||
|
1111
|
||||||
|
1898
|
||||||
|
1848
|
||||||
|
1934
|
||||||
|
1236
|
||||||
|
1704
|
||||||
|
1950
|
||||||
|
1387
|
||||||
|
1713
|
||||||
|
1214
|
||||||
|
1266
|
||||||
|
1114
|
||||||
|
1089
|
||||||
|
1677
|
||||||
|
1207
|
||||||
|
1341
|
||||||
|
1689
|
||||||
|
1772
|
||||||
|
1901
|
||||||
|
1932
|
||||||
|
1645
|
||||||
|
1285
|
||||||
|
1884
|
||||||
|
883
|
||||||
|
1291
|
||||||
|
1543
|
||||||
|
1455
|
||||||
|
1213
|
||||||
|
1088
|
||||||
|
1784
|
||||||
|
1506
|
||||||
|
1879
|
||||||
|
1811
|
||||||
|
1880
|
||||||
|
994
|
||||||
|
1021
|
||||||
|
1585
|
||||||
|
1662
|
||||||
|
1683
|
||||||
|
1071
|
||||||
|
1643
|
||||||
|
1754
|
||||||
|
1389
|
||||||
|
1124
|
||||||
|
1820
|
||||||
|
1168
|
||||||
|
1875
|
||||||
|
1017
|
||||||
|
1180
|
||||||
|
1375
|
||||||
|
1359
|
||||||
|
1311
|
||||||
|
1357
|
||||||
|
1501
|
||||||
|
1719
|
||||||
|
1584
|
||||||
|
1609
|
||||||
|
1977
|
||||||
|
1786
|
||||||
|
1232
|
||||||
|
1263
|
||||||
|
1748
|
||||||
|
1664
|
||||||
|
1693
|
||||||
|
1766
|
||||||
|
1598
|
||||||
|
1053
|
||||||
|
1277
|
||||||
|
1466
|
||||||
|
1877
|
||||||
|
1844
|
||||||
|
1829
|
||||||
|
1165
|
||||||
|
1606
|
||||||
|
1298
|
||||||
|
1963
|
||||||
|
1873
|
||||||
|
1911
|
||||||
|
1729
|
||||||
|
1418
|
||||||
|
1372
|
||||||
|
1777
|
||||||
|
1371
|
||||||
|
1588
|
||||||
|
1329
|
||||||
|
1029
|
||||||
|
1931
|
||||||
|
1115
|
||||||
|
1810
|
||||||
|
1595
|
||||||
|
1237
|
||||||
|
1282
|
||||||
|
1838
|
||||||
|
1642
|
||||||
|
1937
|
||||||
|
1343
|
||||||
|
1578
|
||||||
|
1425
|
||||||
|
1814
|
||||||
|
1690
|
||||||
|
1129
|
||||||
|
1321
|
||||||
|
1174
|
||||||
|
1863
|
||||||
|
1405
|
||||||
|
1066
|
||||||
|
1220
|
||||||
|
1780
|
||||||
|
1410
|
||||||
|
1156
|
||||||
|
1991
|
||||||
|
1568
|
||||||
|
1368
|
||||||
|
99
|
||||||
|
1750
|
||||||
|
1280
|
||||||
|
1400
|
||||||
|
1601
|
||||||
|
1804
|
||||||
|
1363
|
||||||
|
1613
|
||||||
|
1252
|
||||||
|
1434
|
||||||
|
1094
|
||||||
|
1867
|
||||||
|
1542
|
||||||
|
1093
|
||||||
|
1926
|
||||||
|
1251
|
||||||
|
1348
|
||||||
|
689
|
||||||
|
1441
|
||||||
|
1913
|
||||||
|
1969
|
||||||
|
1409
|
||||||
|
1201
|
||||||
|
1459
|
||||||
|
1110
|
||||||
|
1452
|
||||||
|
1051
|
||||||
|
1860
|
||||||
|
1346
|
||||||
|
1537
|
||||||
|
1060
|
||||||
|
1182
|
||||||
|
1386
|
||||||
|
1141
|
||||||
|
1184
|
||||||
|
1989
|
||||||
|
1852
|
||||||
|
1097
|
||||||
|
1135
|
||||||
|
1078
|
||||||
|
1587
|
||||||
|
1984
|
||||||
|
1970
|
||||||
|
1259
|
||||||
|
1281
|
||||||
|
1092
|
||||||
|
1294
|
||||||
|
1233
|
||||||
|
1186
|
||||||
|
1555
|
||||||
|
1755
|
||||||
|
1886
|
||||||
|
1030
|
||||||
|
1706
|
||||||
|
1313
|
||||||
|
1481
|
||||||
|
1998
|
||||||
|
1181
|
||||||
|
1244
|
||||||
|
1269
|
||||||
|
1684
|
||||||
|
1798
|
||||||
|
1023
|
||||||
|
1960
|
||||||
|
1050
|
||||||
|
1293
|
@ -0,0 +1,32 @@
|
|||||||
|
use std::vec::Vec;
|
||||||
|
use std::io;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let mut numbers: Vec<i32> = Vec::new();
|
||||||
|
|
||||||
|
let mut line = String::new();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
match io::stdin().read_line(&mut line) {
|
||||||
|
Ok(0) => {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Ok(_n) => {
|
||||||
|
println!("{}", line);
|
||||||
|
numbers.push(line.trim().parse().unwrap());
|
||||||
|
line.truncate(0);
|
||||||
|
}
|
||||||
|
Err(error) => println!("error: {}", error),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in 0..numbers.len() - 2 {
|
||||||
|
for j in i + 1..numbers.len() - 1 {
|
||||||
|
for k in j + 1..numbers.len() {
|
||||||
|
if numbers[i] + numbers[j] + numbers[k] == 2020 {
|
||||||
|
println!("{}", numbers[i] * numbers[j] * numbers[k]);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
[package]
|
||||||
|
name = "day2"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["henine <matija@rezar.biz>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
scan_fmt = "*"
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,46 @@
|
|||||||
|
use std::fs::File;
|
||||||
|
use std::io::{BufReader, BufRead};
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate scan_fmt;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let file = match File::open("input") {
|
||||||
|
Ok(file) => file,
|
||||||
|
Err(e) => panic!(e)
|
||||||
|
};
|
||||||
|
|
||||||
|
let input_buffer = BufReader::new(&file);
|
||||||
|
|
||||||
|
|
||||||
|
let mut count = 0;
|
||||||
|
|
||||||
|
for line_result in input_buffer.lines() {
|
||||||
|
let line = line_result.unwrap();
|
||||||
|
if match scan_fmt!(&line, "{d}-{d} {}: {}", i32,i32,char, String) {
|
||||||
|
Ok((min_occ, max_occ, letter, password)) => is_correct2(min_occ as usize, max_occ as usize, letter, &password),
|
||||||
|
Err(e) => panic!(e)
|
||||||
|
} {
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("{}", count);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn is_correct(min_occ: i32, max_occ: i32, letter: char, password: &String) -> bool {
|
||||||
|
let mut count = 0;
|
||||||
|
|
||||||
|
for c in password.chars() {
|
||||||
|
if c == letter {
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
count >= min_occ && count <= max_occ
|
||||||
|
}
|
||||||
|
|
||||||
|
fn is_correct2(p1: usize, p2: usize, letter: char, password: &String) -> bool {
|
||||||
|
(password.as_bytes()[p1-1] == letter as u8) ^ (password.as_bytes()[p2-1] == letter as u8)
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "day3"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["henine <matija@rezar.biz>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
@ -0,0 +1,323 @@
|
|||||||
|
.........###......#...#.......#
|
||||||
|
.#.#...........#..#..#.........
|
||||||
|
#.......#.................#....
|
||||||
|
.........#.#.........#......###
|
||||||
|
.....#......##...##............
|
||||||
|
...##...#......#.....#.....##..
|
||||||
|
#.#..#....#...#....#......#....
|
||||||
|
........##.....#.....#.#.......
|
||||||
|
......#.....#......#...##.#....
|
||||||
|
...####...#.......##.....#.#...
|
||||||
|
.........#....#......##........
|
||||||
|
..##...........###.#...........
|
||||||
|
.....#............#............
|
||||||
|
#.#..#..##........#.....#..#...
|
||||||
|
.....................#....##..#
|
||||||
|
...........##.....###...#.#.#..
|
||||||
|
..#......#...........#.........
|
||||||
|
.##.##...#...#......##.#.......
|
||||||
|
......#..#......#.#.#..#.#.....
|
||||||
|
........#.#..#..........#...#.#
|
||||||
|
...........##...........#....#.
|
||||||
|
...........#...##.#............
|
||||||
|
.......#...........#...........
|
||||||
|
.......#......#..#...#....#..#.
|
||||||
|
..#.....#.#....#.#......#...#.#
|
||||||
|
.#..........###..#....#........
|
||||||
|
........##..#..#...#..#....#..#
|
||||||
|
#..........#...#..#.#........#.
|
||||||
|
..#.#........##.##....##.#.....
|
||||||
|
#.##....#...#.......#.#..#....#
|
||||||
|
......##...#.#.#.#.....#....#..
|
||||||
|
..........#..............#.....
|
||||||
|
....................###.#......
|
||||||
|
#.....#...#...#.#.......#....#.
|
||||||
|
.......#..#...................#
|
||||||
|
........##.##........#......#..
|
||||||
|
...#...##.#...#...........#....
|
||||||
|
..#.........#...#....##......#.
|
||||||
|
......#..............#..#..#.#.
|
||||||
|
.....##...#...#...##....#......
|
||||||
|
#.#....#...#......##.....#...##
|
||||||
|
.#...#.#..................#....
|
||||||
|
#.##.....#......#..........#...
|
||||||
|
..#..#.......#.................
|
||||||
|
..#.....#.........#........#...
|
||||||
|
.......#...##.##.#..#..##.#..#.
|
||||||
|
#.............#.........#.#....
|
||||||
|
..#..##..........#..#..##.#.#..
|
||||||
|
.#......#.......#...#.....##.#.
|
||||||
|
.....#......#...#...........###
|
||||||
|
..........#.........#.....#....
|
||||||
|
.....#..........#.......##...#.
|
||||||
|
......#..#..#..............#...
|
||||||
|
.#.####..#...##...#.#..........
|
||||||
|
..#....#.......#........#.....#
|
||||||
|
....#.##.....#..#.....#.#.#..#.
|
||||||
|
.......#..#..##.......#........
|
||||||
|
.#.....#...........#.....#.....
|
||||||
|
........#..........##..##.#....
|
||||||
|
.#.....#........#.....#..#.....
|
||||||
|
..#..........#...#......##..#..
|
||||||
|
.#............#.........#....#.
|
||||||
|
........#..###.......#.....###.
|
||||||
|
##.#...#.#..#..#..#.#.##...#...
|
||||||
|
.#....#...#..#......##.........
|
||||||
|
.............##.....##.........
|
||||||
|
.....##.#..###.#....#...#...#.#
|
||||||
|
#........#...#......#...#.##...
|
||||||
|
#....#......#.....###.##.#.....
|
||||||
|
.....#..#.#.##....#..##.....##.
|
||||||
|
....#...#...#..........##......
|
||||||
|
..........#......#...#.....##..
|
||||||
|
.....##....##.#.............#.#
|
||||||
|
#.........#.##.............#..#
|
||||||
|
.....#.........##.#...#.#.#....
|
||||||
|
..........#..#......#..#.....#.
|
||||||
|
....#....#....#....#.......###.
|
||||||
|
....#...#..##....#..##..#...##.
|
||||||
|
.###......#...........###......
|
||||||
|
#..................####.#....#.
|
||||||
|
#....#.#.....#.#....#..#.......
|
||||||
|
...#......#....##......#..#..#.
|
||||||
|
#.#...#.##.....#.#.......##..#.
|
||||||
|
.........##.................#..
|
||||||
|
#..##.#....#.#.............#...
|
||||||
|
....................####.#.#..#
|
||||||
|
.......#..#...#..#..#.....#...#
|
||||||
|
.....#.#.#........#....#...##..
|
||||||
|
......#..#....#......#..##.....
|
||||||
|
............#......##.#....#..#
|
||||||
|
...#..........#..#...........#.
|
||||||
|
..........#.............###....
|
||||||
|
....##.#.#......#.#..#....##..#
|
||||||
|
..#..........#........#......#.
|
||||||
|
..#...........####......##..#.#
|
||||||
|
...##......##...#..#.##........
|
||||||
|
.....#...#.....##.....###..##..
|
||||||
|
.#.##.....#....##....#.........
|
||||||
|
#....##..#.....#.#......#.#....
|
||||||
|
..#.......#...#....#...#.#.....
|
||||||
|
...........#.........#.........
|
||||||
|
..#..#....##..#....#....#.....#
|
||||||
|
.......#..#....##....#.........
|
||||||
|
#.........#...........##....##.
|
||||||
|
#........#.#...............##..
|
||||||
|
#...##.#...............#.......
|
||||||
|
#....#..#......#..#.###...##..#
|
||||||
|
..#.........#.#......#.....#..#
|
||||||
|
......#...........##........##.
|
||||||
|
.#.........#................#..
|
||||||
|
#...#...............#...#....#.
|
||||||
|
.#.#......##.........#.#.......
|
||||||
|
..........#....................
|
||||||
|
.#.....#..#...#.#.#.......#...#
|
||||||
|
..#..........#.................
|
||||||
|
.#.#.....#.#......#...#.....##.
|
||||||
|
.....#.#..##...##..#..###...#..
|
||||||
|
......#......#.#......#.##.....
|
||||||
|
#.#......#...#.......#....#....
|
||||||
|
..........#....#.#..#.....##...
|
||||||
|
#...........#.#....#.##....#.#.
|
||||||
|
#.#....#..#.........###....#...
|
||||||
|
..............#..##.......#....
|
||||||
|
.......................#.##.#..
|
||||||
|
##...............##....#..#.#..
|
||||||
|
.#.#..#.##...#.............#...
|
||||||
|
...#...........#............#..
|
||||||
|
..#......#........##....#.#.##.
|
||||||
|
.#.#..#........#....#....#....#
|
||||||
|
.#.....#.##....#.....#..#...#..
|
||||||
|
......#...#..........#..###....
|
||||||
|
..#.#.......#........#........#
|
||||||
|
.......##.####..........#......
|
||||||
|
.#.#..#......##..#.........#..#
|
||||||
|
..#...##.#.......#...#.##...#.#
|
||||||
|
#.#..........#..#.#.#..........
|
||||||
|
.....#......#............#.....
|
||||||
|
........###...#.......#........
|
||||||
|
.....#.##....#....#............
|
||||||
|
...#.#....##.....#.....#.......
|
||||||
|
..#.............#......#.......
|
||||||
|
.#....#...#....##..#......#....
|
||||||
|
..#.....#.#............#.......
|
||||||
|
......#........##.........#...#
|
||||||
|
.......#........#..#.#.#...##.#
|
||||||
|
#....#...#..#.......#....##....
|
||||||
|
#...##.#.#.....#.......#.......
|
||||||
|
.....#........#.#.....#...##...
|
||||||
|
..#....#..##......#.#.....#...#
|
||||||
|
....#.....#......#.....#.......
|
||||||
|
#.#....#......#...##...........
|
||||||
|
..#.......#...#...............#
|
||||||
|
........#........#.............
|
||||||
|
#.#.#......#...#..#..........#.
|
||||||
|
.##...#.........#........#..#..
|
||||||
|
#.#.#...#.#.......#.....#...#..
|
||||||
|
...#..............#..........#.
|
||||||
|
#.#...#.###.............#......
|
||||||
|
................#.....###.##.#.
|
||||||
|
.......#..........#....#..#....
|
||||||
|
......##....#..#..##...........
|
||||||
|
...#...#.....######.......#....
|
||||||
|
..##.....##.#...#.........#.#.#
|
||||||
|
.......#...#..#.#.#...........#
|
||||||
|
........###.............#...#.#
|
||||||
|
#.....#.........#.............#
|
||||||
|
..#...#.....#..................
|
||||||
|
.....#....#.....#......#.#....#
|
||||||
|
...#....#........##...#.......#
|
||||||
|
...##.#...#.....#..............
|
||||||
|
..#.##....##..#.........#......
|
||||||
|
.....#..#.#....#...#......#.#..
|
||||||
|
...........##..##...#..#..###..
|
||||||
|
#...........#.........####....#
|
||||||
|
.#...........#...........###...
|
||||||
|
........#................#.....
|
||||||
|
.....#....#............#....#.#
|
||||||
|
...#...#.......#...............
|
||||||
|
#.....##.#.......#.#...........
|
||||||
|
#.......#.#.#.#..#...#.........
|
||||||
|
....####.#...#.#......#.....##.
|
||||||
|
...##...#.....#.#......#..#....
|
||||||
|
..........#..#....#......###...
|
||||||
|
...................#....##...#.
|
||||||
|
....#......#........#...##..#..
|
||||||
|
##...#.........#.#......#......
|
||||||
|
#........#...#....#......#.....
|
||||||
|
#..#.......#...............##..
|
||||||
|
......##......#...........##.#.
|
||||||
|
......#..#....#....#.##........
|
||||||
|
..#....#..#.#.###....#.........
|
||||||
|
.#......#..#..............#....
|
||||||
|
.#..........#...#..#.#...#.....
|
||||||
|
....#......#..#......#....#....
|
||||||
|
...##.....#............####..#.
|
||||||
|
......#.#...#....#..#...#..#.#.
|
||||||
|
......##.......................
|
||||||
|
#.##........#...........####..#
|
||||||
|
.....#......#.......#.#....#...
|
||||||
|
#.......#....#.....#....#...##.
|
||||||
|
.....#..##.#...........#..#...#
|
||||||
|
...........#.##.#.#...#.#..#...
|
||||||
|
..#.......#.#....#..#..........
|
||||||
|
...#.......##..#.............#.
|
||||||
|
....#..#....#....#...#....#....
|
||||||
|
#......#.#...##..........#..#..
|
||||||
|
..#.#.......#.........#......#.
|
||||||
|
#...............#.............#
|
||||||
|
....##..#......................
|
||||||
|
.##....#............#......#...
|
||||||
|
.......#....#..##......##......
|
||||||
|
#..##.....#..#..........#......
|
||||||
|
...#.........#.......#..##.....
|
||||||
|
....#.##.....#.#...#...#.....#.
|
||||||
|
##...........#.#..#...#.#......
|
||||||
|
....#.............##...#.#..#..
|
||||||
|
...#....#......................
|
||||||
|
#..#...##.#.......#.##..#.###..
|
||||||
|
...##.#.#...##........##...#...
|
||||||
|
......##..#..#.....#..#.#..#...
|
||||||
|
#.......##...............##.#..
|
||||||
|
.##......#..#....#...##..#..#.#
|
||||||
|
##.........##..#...#.....##....
|
||||||
|
...#..........#...#..##.#......
|
||||||
|
..##.#........#...#..........##
|
||||||
|
.......................##.#....
|
||||||
|
....#...#...#..###.#.......#.##
|
||||||
|
....#....#.#..........#.##.....
|
||||||
|
..#..........##...#....#.......
|
||||||
|
.....#.....#.....#..#.........#
|
||||||
|
..##..##..#..#....#..#.......##
|
||||||
|
.............#............##...
|
||||||
|
....#.#.#.......###.........#..
|
||||||
|
...##.#..........#.#...#.#.....
|
||||||
|
.#........#..#.#.#..#..........
|
||||||
|
...##...#.....##.......#..#..#.
|
||||||
|
...#......#..#.......##.#.#....
|
||||||
|
.........#.........##........#.
|
||||||
|
.........##..................##
|
||||||
|
....##.....#................#..
|
||||||
|
....#..................##...#.#
|
||||||
|
.........#..............#......
|
||||||
|
...#......#..#..#....#..#...##.
|
||||||
|
.#.##......##...#.#......#.#...
|
||||||
|
...#.#...###....#...#.#..#....#
|
||||||
|
....#..#.......#.....#..##.#.#.
|
||||||
|
#.#.#..#.......#####.#..##..#..
|
||||||
|
#..........#.....#..#.#..#.....
|
||||||
|
.#......#...#..#.#..#..#.......
|
||||||
|
...#....##...#..........#.##.#.
|
||||||
|
#.##..#...#..................#.
|
||||||
|
......#.###..#..#..#.......#...
|
||||||
|
...#....#...#..#............###
|
||||||
|
#.........#........#.......#...
|
||||||
|
...#..#.................#....##
|
||||||
|
...#.#.............##......#...
|
||||||
|
##....#.##.............##......
|
||||||
|
#............#..#..#.....#.....
|
||||||
|
....#........#...#.....#.#...##
|
||||||
|
..#.##..#.....................#
|
||||||
|
#.#........#...#..#...#.#......
|
||||||
|
...#..#...........##.....#.....
|
||||||
|
......#.#....#..##...#.....#...
|
||||||
|
......#......#.###..##.........
|
||||||
|
....#.......#...##.##.....#....
|
||||||
|
#.....##....#........#..##.....
|
||||||
|
.#..#..#..#..#.#...#...#.......
|
||||||
|
.......##...#......#.........#.
|
||||||
|
.#..##....#.....#...........##.
|
||||||
|
.......##....#.#........#......
|
||||||
|
..#.#.#....#...................
|
||||||
|
.#...#.......#...#.#......#....
|
||||||
|
..##.##..##...........###......
|
||||||
|
#...#......#.......#...........
|
||||||
|
#....##.#.......#.........#....
|
||||||
|
.............##.#.#..#...#...#.
|
||||||
|
..##.##...........#.........##.
|
||||||
|
#.#...#..........#.#....#....##
|
||||||
|
.....#.....#..##..#............
|
||||||
|
#.........#.........#.#...##..#
|
||||||
|
...#.#.....#.........###..#....
|
||||||
|
..#.#.##.#...................#.
|
||||||
|
......####....#.......#.......#
|
||||||
|
.........#..#..#....#..##......
|
||||||
|
....#..........#...##........#.
|
||||||
|
..........#..#....#.....#....#.
|
||||||
|
.#.#.................#....#....
|
||||||
|
.......#......#.....#...##.....
|
||||||
|
....#..............#...........
|
||||||
|
###...........##.#...........#.
|
||||||
|
...####.......#...#....#.#...#.
|
||||||
|
..##.#................#........
|
||||||
|
...#..#....#.....#.....##..#...
|
||||||
|
##.#....#....##..........#.#..#
|
||||||
|
...#....#.....#................
|
||||||
|
..#...#....#..#..#.##.##..#....
|
||||||
|
....#....#.##.....#...#......#.
|
||||||
|
......#................#..#..#.
|
||||||
|
...##..#...#....#.#.....#..#...
|
||||||
|
#...#..............#.#.....#.#.
|
||||||
|
....#.........#.##...#.#....#..
|
||||||
|
..................#..##.#......
|
||||||
|
.#.....#.....#.............#..#
|
||||||
|
..........####....###..##...#..
|
||||||
|
......#........#...#......##..#
|
||||||
|
#......#.#..........#....#.#...
|
||||||
|
###................#.#....#....
|
||||||
|
#..#.##.#.............#..#.....
|
||||||
|
.....#............#.....##.....
|
||||||
|
....#.....#....#.........#.....
|
||||||
|
#..#...........###.#....#......
|
||||||
|
..#............##...#........##
|
||||||
|
..#....#..#....#.....#.......#.
|
||||||
|
..#..#.#.#.##.#..#...#.....#...
|
||||||
|
..........#..#.................
|
||||||
|
...#.#......#..##........#.....
|
||||||
|
...............#...............
|
||||||
|
#.......#.......#....#.........
|
||||||
|
#...........#....#.............
|
||||||
|
....#..#..........#....#..##...
|
||||||
|
.........#.#.#.........#......#
|
||||||
|
.....#...##.....#.#.......#...#
|
||||||
|
.........#....#...#.......#....
|
@ -0,0 +1,45 @@
|
|||||||
|
use std::fs::File;
|
||||||
|
use std::io::{BufReader, BufRead};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let file = match File::open("input") {
|
||||||
|
Ok(file) => file,
|
||||||
|
Err(e) => panic!(e)
|
||||||
|
};
|
||||||
|
|
||||||
|
let input_buffer = BufReader::new(&file);
|
||||||
|
|
||||||
|
|
||||||
|
let mut count: [u32; 5] = [0, 0, 0, 0, 0];
|
||||||
|
|
||||||
|
let mut line_n = 0;
|
||||||
|
|
||||||
|
for line_result in input_buffer.lines() {
|
||||||
|
let line_string = line_result.unwrap();
|
||||||
|
let line = line_string.as_bytes();
|
||||||
|
|
||||||
|
if line[(1 * line_n) % line.len()] == '#' as u8 {
|
||||||
|
count[0] += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if line[(3 * line_n) % line.len()] == '#' as u8 {
|
||||||
|
count[1] += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if line[(5 * line_n) % line.len()] == '#' as u8 {
|
||||||
|
count[2] += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if line[(7 * line_n) % line.len()] == '#' as u8 {
|
||||||
|
count[3] += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if line_n % 2 == 0 && line[(1 * line_n/2) % line.len()] == '#' as u8 {
|
||||||
|
count[4] += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
line_n += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("{}", count[0] * count[1] * count[2] * count[3] * count[4]);
|
||||||
|
}
|
Loading…
Reference in New Issue