From bdd564abdde786db694a1b454593a3ff233bd501 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Thu, 13 Dec 2018 17:24:52 +0100 Subject: [PATCH] day4p2 --- day4p2/Makefile | 12 + day4p2/input | 1102 +++++++++++++++++++++++++++++++++++++++++++++++ day4p2/main | Bin 0 -> 17920 bytes day4p2/main.c | 198 +++++++++ 4 files changed, 1312 insertions(+) create mode 100644 day4p2/Makefile create mode 100644 day4p2/input create mode 100755 day4p2/main create mode 100644 day4p2/main.c diff --git a/day4p2/Makefile b/day4p2/Makefile new file mode 100644 index 0000000..c711967 --- /dev/null +++ b/day4p2/Makefile @@ -0,0 +1,12 @@ +CFLAGS := -Wall -Wextra -std=c17 -D_GNU_SOURCE + +LIBS := glib-2.0 +CFLAGS += $(shell pkg-config --cflags $(LIBS)) +LDLIBS := $(shell pkg-config --libs $(LIBS)) + +.PHONY: all +all: main + +.PHONY: clean +clean: + rm -f main diff --git a/day4p2/input b/day4p2/input new file mode 100644 index 0000000..a44e892 --- /dev/null +++ b/day4p2/input @@ -0,0 +1,1102 @@ +[1518-03-11 00:45] wakes up +[1518-07-13 00:13] falls asleep +[1518-11-02 23:56] Guard #3463 begins shift +[1518-11-13 00:59] wakes up +[1518-06-15 23:59] Guard #829 begins shift +[1518-08-16 00:03] Guard #1399 begins shift +[1518-09-18 00:19] wakes up +[1518-08-30 00:56] wakes up +[1518-04-22 00:32] falls asleep +[1518-10-07 00:41] wakes up +[1518-08-21 00:28] falls asleep +[1518-07-04 00:00] Guard #1699 begins shift +[1518-04-11 00:23] falls asleep +[1518-10-17 00:11] wakes up +[1518-08-23 23:56] Guard #3253 begins shift +[1518-04-29 00:51] wakes up +[1518-04-14 00:51] wakes up +[1518-05-28 00:36] falls asleep +[1518-04-02 23:58] Guard #3371 begins shift +[1518-07-11 00:54] wakes up +[1518-07-07 00:29] falls asleep +[1518-11-01 00:30] wakes up +[1518-09-18 23:56] Guard #1699 begins shift +[1518-03-27 00:08] falls asleep +[1518-07-21 00:37] falls asleep +[1518-10-30 00:00] Guard #463 begins shift +[1518-04-24 00:59] wakes up +[1518-11-18 00:52] wakes up +[1518-05-19 00:55] wakes up +[1518-04-28 00:44] wakes up +[1518-08-29 00:55] wakes up +[1518-06-14 00:57] falls asleep +[1518-03-17 00:21] falls asleep +[1518-03-31 00:14] falls asleep +[1518-09-09 23:57] Guard #73 begins shift +[1518-11-02 00:57] falls asleep +[1518-10-04 00:15] falls asleep +[1518-07-14 00:04] Guard #1759 begins shift +[1518-04-15 00:58] wakes up +[1518-09-09 00:56] wakes up +[1518-11-21 00:33] falls asleep +[1518-08-15 00:06] falls asleep +[1518-10-15 00:00] Guard #463 begins shift +[1518-07-03 00:56] falls asleep +[1518-05-17 00:41] wakes up +[1518-04-01 00:39] falls asleep +[1518-08-14 00:54] wakes up +[1518-05-25 00:51] wakes up +[1518-03-31 23:49] Guard #151 begins shift +[1518-09-12 00:34] wakes up +[1518-07-22 00:40] falls asleep +[1518-11-07 00:22] falls asleep +[1518-04-21 00:28] wakes up +[1518-07-31 23:59] Guard #151 begins shift +[1518-09-14 00:01] Guard #3463 begins shift +[1518-10-03 00:46] wakes up +[1518-03-22 00:57] wakes up +[1518-10-04 00:03] Guard #1913 begins shift +[1518-03-15 00:02] Guard #3463 begins shift +[1518-07-19 23:52] Guard #3253 begins shift +[1518-09-12 00:47] falls asleep +[1518-09-27 00:35] falls asleep +[1518-03-05 00:28] falls asleep +[1518-10-26 23:57] Guard #73 begins shift +[1518-09-30 00:00] Guard #1861 begins shift +[1518-09-28 00:25] wakes up +[1518-07-02 00:44] wakes up +[1518-05-08 00:47] wakes up +[1518-07-24 23:59] Guard #653 begins shift +[1518-08-06 00:16] wakes up +[1518-06-20 00:40] wakes up +[1518-11-16 00:08] falls asleep +[1518-06-28 00:57] wakes up +[1518-04-15 00:00] Guard #463 begins shift +[1518-07-03 00:52] wakes up +[1518-10-06 00:02] Guard #1861 begins shift +[1518-09-02 00:10] falls asleep +[1518-06-13 00:55] wakes up +[1518-07-23 00:35] wakes up +[1518-08-08 23:50] Guard #151 begins shift +[1518-09-04 00:25] wakes up +[1518-05-03 00:48] falls asleep +[1518-03-28 00:41] wakes up +[1518-04-21 00:43] wakes up +[1518-05-16 00:00] Guard #1861 begins shift +[1518-03-04 00:12] falls asleep +[1518-07-26 23:57] Guard #151 begins shift +[1518-03-07 23:48] Guard #1069 begins shift +[1518-04-06 00:43] falls asleep +[1518-10-23 00:51] falls asleep +[1518-11-21 00:58] wakes up +[1518-11-01 00:38] falls asleep +[1518-08-15 00:26] falls asleep +[1518-09-29 00:59] wakes up +[1518-08-06 00:58] wakes up +[1518-11-11 00:19] falls asleep +[1518-07-08 23:58] Guard #1597 begins shift +[1518-03-25 00:32] falls asleep +[1518-11-13 00:31] wakes up +[1518-06-03 00:15] wakes up +[1518-02-28 00:03] Guard #463 begins shift +[1518-11-20 00:07] falls asleep +[1518-10-16 00:53] wakes up +[1518-08-14 00:03] Guard #3469 begins shift +[1518-10-18 00:03] Guard #73 begins shift +[1518-04-21 00:38] falls asleep +[1518-04-08 00:49] wakes up +[1518-11-14 00:32] wakes up +[1518-03-14 00:58] wakes up +[1518-04-21 00:07] falls asleep +[1518-07-29 00:02] Guard #1597 begins shift +[1518-11-21 00:21] wakes up +[1518-09-22 00:27] falls asleep +[1518-11-19 00:11] falls asleep +[1518-03-18 00:59] wakes up +[1518-08-27 00:58] wakes up +[1518-09-18 00:53] wakes up +[1518-09-24 00:33] wakes up +[1518-06-01 00:56] wakes up +[1518-08-26 00:40] falls asleep +[1518-09-20 00:30] falls asleep +[1518-06-07 00:52] wakes up +[1518-11-13 00:50] falls asleep +[1518-07-19 00:43] falls asleep +[1518-11-19 00:04] Guard #653 begins shift +[1518-10-07 00:51] falls asleep +[1518-07-20 00:26] falls asleep +[1518-03-02 00:30] wakes up +[1518-09-26 00:40] wakes up +[1518-10-27 00:29] falls asleep +[1518-04-29 23:58] Guard #523 begins shift +[1518-03-16 00:34] wakes up +[1518-11-22 00:28] falls asleep +[1518-09-26 23:59] Guard #1759 begins shift +[1518-03-16 00:23] falls asleep +[1518-03-21 00:12] falls asleep +[1518-11-19 23:56] Guard #1399 begins shift +[1518-04-13 23:56] Guard #463 begins shift +[1518-06-15 00:46] wakes up +[1518-10-21 00:02] Guard #73 begins shift +[1518-11-05 00:18] falls asleep +[1518-03-10 23:59] Guard #829 begins shift +[1518-09-08 00:01] Guard #151 begins shift +[1518-07-21 00:17] falls asleep +[1518-04-19 00:05] falls asleep +[1518-04-05 23:49] Guard #389 begins shift +[1518-11-04 00:59] wakes up +[1518-08-13 00:17] falls asleep +[1518-02-27 00:01] Guard #2557 begins shift +[1518-09-20 00:02] Guard #1069 begins shift +[1518-11-07 00:25] wakes up +[1518-06-02 23:58] Guard #1069 begins shift +[1518-03-20 00:26] wakes up +[1518-03-30 00:02] Guard #1759 begins shift +[1518-05-04 00:05] falls asleep +[1518-06-07 23:49] Guard #653 begins shift +[1518-05-01 00:03] falls asleep +[1518-08-22 23:57] Guard #2557 begins shift +[1518-10-29 00:43] wakes up +[1518-03-06 00:54] falls asleep +[1518-05-02 00:03] Guard #1913 begins shift +[1518-07-03 00:59] wakes up +[1518-09-04 00:45] wakes up +[1518-06-18 00:17] falls asleep +[1518-05-08 00:53] falls asleep +[1518-11-15 00:58] wakes up +[1518-06-13 00:24] wakes up +[1518-08-05 00:51] wakes up +[1518-05-31 23:54] Guard #463 begins shift +[1518-04-05 00:36] falls asleep +[1518-06-04 00:15] wakes up +[1518-09-14 23:57] Guard #151 begins shift +[1518-04-20 00:01] Guard #1861 begins shift +[1518-05-23 23:50] Guard #1759 begins shift +[1518-05-08 00:43] falls asleep +[1518-10-30 23:59] Guard #829 begins shift +[1518-05-17 00:55] wakes up +[1518-07-15 00:20] wakes up +[1518-07-20 00:00] falls asleep +[1518-10-03 00:50] falls asleep +[1518-08-31 00:55] wakes up +[1518-07-28 00:00] Guard #151 begins shift +[1518-02-27 00:57] wakes up +[1518-07-05 00:43] falls asleep +[1518-07-27 00:29] falls asleep +[1518-08-26 00:04] Guard #1699 begins shift +[1518-09-12 00:12] falls asleep +[1518-10-24 00:21] falls asleep +[1518-04-17 00:03] falls asleep +[1518-04-12 00:47] wakes up +[1518-05-05 00:52] wakes up +[1518-06-30 00:24] falls asleep +[1518-08-13 00:00] Guard #3463 begins shift +[1518-05-07 00:38] falls asleep +[1518-08-10 23:46] Guard #829 begins shift +[1518-07-18 00:50] falls asleep +[1518-09-27 23:59] Guard #1123 begins shift +[1518-09-30 00:42] wakes up +[1518-04-18 00:03] falls asleep +[1518-07-15 00:36] wakes up +[1518-11-17 00:51] falls asleep +[1518-05-03 00:31] falls asleep +[1518-10-20 00:46] wakes up +[1518-08-19 00:47] falls asleep +[1518-03-22 00:20] falls asleep +[1518-06-06 00:17] falls asleep +[1518-09-13 00:58] wakes up +[1518-04-01 00:13] wakes up +[1518-07-09 00:28] falls asleep +[1518-05-10 00:43] falls asleep +[1518-08-02 00:45] falls asleep +[1518-08-18 00:04] Guard #337 begins shift +[1518-06-04 23:59] Guard #1069 begins shift +[1518-05-08 00:57] wakes up +[1518-06-13 00:10] falls asleep +[1518-06-17 00:26] wakes up +[1518-02-25 00:29] wakes up +[1518-08-20 00:56] wakes up +[1518-10-17 00:57] wakes up +[1518-09-18 00:48] falls asleep +[1518-08-12 00:48] wakes up +[1518-11-01 00:06] falls asleep +[1518-07-23 00:07] falls asleep +[1518-04-16 00:42] falls asleep +[1518-04-06 00:28] wakes up +[1518-10-05 00:47] falls asleep +[1518-11-10 23:59] Guard #1759 begins shift +[1518-07-08 00:27] wakes up +[1518-04-04 00:07] falls asleep +[1518-02-25 00:17] falls asleep +[1518-04-12 23:59] Guard #2557 begins shift +[1518-08-07 00:55] wakes up +[1518-06-03 00:51] wakes up +[1518-07-28 00:32] wakes up +[1518-08-26 00:51] falls asleep +[1518-09-23 23:56] Guard #1699 begins shift +[1518-04-22 00:42] wakes up +[1518-03-14 00:57] falls asleep +[1518-10-02 00:48] wakes up +[1518-03-03 00:24] falls asleep +[1518-04-27 00:58] wakes up +[1518-10-06 00:54] wakes up +[1518-05-14 00:55] falls asleep +[1518-11-04 00:02] Guard #1123 begins shift +[1518-04-24 00:54] falls asleep +[1518-09-16 23:57] Guard #1069 begins shift +[1518-05-30 23:48] Guard #523 begins shift +[1518-09-23 00:15] falls asleep +[1518-05-08 23:48] Guard #1069 begins shift +[1518-03-24 00:25] falls asleep +[1518-04-23 00:29] wakes up +[1518-04-27 00:03] Guard #151 begins shift +[1518-06-30 23:58] Guard #1123 begins shift +[1518-02-27 00:27] falls asleep +[1518-06-13 00:00] Guard #1759 begins shift +[1518-04-04 00:29] wakes up +[1518-03-08 23:57] Guard #3469 begins shift +[1518-05-19 23:50] Guard #389 begins shift +[1518-06-03 23:58] Guard #463 begins shift +[1518-11-10 00:08] falls asleep +[1518-11-13 00:25] falls asleep +[1518-06-14 00:59] wakes up +[1518-03-27 00:47] wakes up +[1518-07-20 23:57] Guard #463 begins shift +[1518-04-16 23:51] Guard #523 begins shift +[1518-10-06 00:53] falls asleep +[1518-08-19 00:54] wakes up +[1518-10-02 00:58] wakes up +[1518-08-28 23:49] Guard #3469 begins shift +[1518-02-26 00:07] falls asleep +[1518-03-04 00:21] wakes up +[1518-09-09 00:20] falls asleep +[1518-07-15 00:39] falls asleep +[1518-03-18 00:01] Guard #1597 begins shift +[1518-03-30 00:48] wakes up +[1518-06-04 00:38] falls asleep +[1518-10-07 00:56] wakes up +[1518-10-24 00:03] Guard #463 begins shift +[1518-10-03 00:24] falls asleep +[1518-09-15 00:49] wakes up +[1518-06-22 00:58] wakes up +[1518-07-11 00:00] Guard #463 begins shift +[1518-03-23 00:37] wakes up +[1518-06-27 00:44] falls asleep +[1518-08-27 00:31] wakes up +[1518-07-07 00:35] wakes up +[1518-11-10 00:49] falls asleep +[1518-10-30 00:51] wakes up +[1518-08-29 00:47] falls asleep +[1518-03-20 00:40] wakes up +[1518-10-02 23:59] Guard #463 begins shift +[1518-08-27 00:01] Guard #1597 begins shift +[1518-06-14 00:44] falls asleep +[1518-10-09 00:59] wakes up +[1518-07-17 00:00] Guard #1861 begins shift +[1518-11-23 00:12] falls asleep +[1518-05-16 00:58] wakes up +[1518-11-02 00:00] Guard #389 begins shift +[1518-05-31 00:00] falls asleep +[1518-04-30 00:20] falls asleep +[1518-03-20 00:55] falls asleep +[1518-09-21 00:40] falls asleep +[1518-06-27 00:46] wakes up +[1518-09-14 00:56] falls asleep +[1518-07-29 00:58] wakes up +[1518-03-04 00:57] wakes up +[1518-10-24 00:55] wakes up +[1518-03-22 00:53] falls asleep +[1518-03-13 00:38] wakes up +[1518-07-31 00:43] falls asleep +[1518-04-20 00:15] wakes up +[1518-06-26 00:57] wakes up +[1518-03-06 00:00] Guard #3463 begins shift +[1518-08-02 00:50] wakes up +[1518-11-14 00:01] Guard #523 begins shift +[1518-10-12 00:47] wakes up +[1518-08-17 00:45] falls asleep +[1518-04-06 00:25] falls asleep +[1518-06-19 00:00] Guard #389 begins shift +[1518-05-17 00:49] falls asleep +[1518-10-14 00:04] Guard #1699 begins shift +[1518-04-19 00:33] falls asleep +[1518-11-08 23:56] Guard #1913 begins shift +[1518-07-06 00:42] falls asleep +[1518-04-26 00:48] wakes up +[1518-03-11 00:09] falls asleep +[1518-08-02 00:59] wakes up +[1518-07-18 23:56] Guard #3469 begins shift +[1518-06-17 00:48] wakes up +[1518-04-26 00:00] Guard #829 begins shift +[1518-08-19 00:00] Guard #2557 begins shift +[1518-07-02 23:57] Guard #653 begins shift +[1518-03-28 00:00] Guard #829 begins shift +[1518-05-18 00:17] falls asleep +[1518-06-20 00:52] wakes up +[1518-06-27 23:57] Guard #73 begins shift +[1518-09-12 23:50] Guard #1861 begins shift +[1518-08-06 00:01] falls asleep +[1518-10-21 00:35] falls asleep +[1518-10-31 00:39] wakes up +[1518-10-15 23:54] Guard #3463 begins shift +[1518-08-26 00:21] falls asleep +[1518-09-16 00:00] Guard #653 begins shift +[1518-04-20 00:18] falls asleep +[1518-10-08 23:46] Guard #1597 begins shift +[1518-07-26 00:01] falls asleep +[1518-03-03 00:37] wakes up +[1518-08-21 00:48] falls asleep +[1518-04-28 00:10] falls asleep +[1518-09-25 00:40] falls asleep +[1518-03-09 00:50] falls asleep +[1518-09-01 00:00] Guard #3463 begins shift +[1518-05-01 00:29] wakes up +[1518-11-10 00:35] wakes up +[1518-04-04 00:00] Guard #3463 begins shift +[1518-09-19 00:17] falls asleep +[1518-03-17 00:56] falls asleep +[1518-09-07 00:39] falls asleep +[1518-04-14 00:37] wakes up +[1518-10-03 00:57] wakes up +[1518-04-26 00:18] falls asleep +[1518-04-06 00:12] wakes up +[1518-08-23 00:41] falls asleep +[1518-11-10 00:46] wakes up +[1518-09-12 00:51] wakes up +[1518-03-05 00:52] wakes up +[1518-11-23 00:00] Guard #1123 begins shift +[1518-05-22 00:04] Guard #463 begins shift +[1518-09-11 00:19] falls asleep +[1518-06-13 00:45] falls asleep +[1518-04-14 00:17] falls asleep +[1518-07-15 00:35] falls asleep +[1518-05-06 00:57] wakes up +[1518-10-30 00:32] wakes up +[1518-06-30 00:54] wakes up +[1518-05-13 00:58] wakes up +[1518-08-09 00:00] falls asleep +[1518-07-16 00:10] wakes up +[1518-10-09 00:45] wakes up +[1518-07-06 00:52] wakes up +[1518-02-26 00:49] wakes up +[1518-06-06 23:58] Guard #1399 begins shift +[1518-05-18 00:27] wakes up +[1518-03-05 00:30] wakes up +[1518-10-01 00:47] falls asleep +[1518-08-19 00:17] falls asleep +[1518-07-30 00:32] falls asleep +[1518-06-27 00:59] wakes up +[1518-08-25 00:49] falls asleep +[1518-05-30 00:51] wakes up +[1518-07-25 00:29] falls asleep +[1518-09-11 00:32] falls asleep +[1518-10-25 00:44] falls asleep +[1518-05-25 23:56] Guard #151 begins shift +[1518-05-20 23:59] Guard #337 begins shift +[1518-04-13 00:34] falls asleep +[1518-03-05 00:40] falls asleep +[1518-09-26 00:03] Guard #1123 begins shift +[1518-07-20 00:33] falls asleep +[1518-08-19 23:58] Guard #1597 begins shift +[1518-06-18 00:04] Guard #2333 begins shift +[1518-08-10 00:46] wakes up +[1518-09-17 00:55] wakes up +[1518-08-15 00:09] wakes up +[1518-04-15 00:51] wakes up +[1518-06-02 00:59] wakes up +[1518-03-10 00:00] Guard #1399 begins shift +[1518-11-12 00:01] Guard #523 begins shift +[1518-11-17 00:14] falls asleep +[1518-03-24 00:40] falls asleep +[1518-10-19 23:50] Guard #1399 begins shift +[1518-05-28 23:58] Guard #151 begins shift +[1518-07-01 23:56] Guard #829 begins shift +[1518-11-15 00:26] falls asleep +[1518-11-09 00:13] falls asleep +[1518-09-11 00:20] wakes up +[1518-08-16 00:36] wakes up +[1518-07-12 00:10] falls asleep +[1518-05-09 00:23] wakes up +[1518-08-30 23:59] Guard #1123 begins shift +[1518-09-05 00:28] wakes up +[1518-10-04 00:48] wakes up +[1518-08-21 00:58] wakes up +[1518-07-20 00:27] wakes up +[1518-06-23 00:23] falls asleep +[1518-08-01 00:48] wakes up +[1518-08-27 00:44] falls asleep +[1518-04-05 00:52] falls asleep +[1518-10-13 00:04] Guard #3469 begins shift +[1518-10-07 00:03] Guard #1861 begins shift +[1518-07-20 00:53] wakes up +[1518-03-09 00:59] wakes up +[1518-09-06 00:41] wakes up +[1518-08-25 00:57] wakes up +[1518-06-24 00:42] wakes up +[1518-09-07 00:00] Guard #151 begins shift +[1518-07-13 00:22] wakes up +[1518-08-25 00:02] Guard #463 begins shift +[1518-03-29 00:45] falls asleep +[1518-07-28 00:59] wakes up +[1518-09-27 00:59] wakes up +[1518-06-09 00:54] wakes up +[1518-08-30 00:32] falls asleep +[1518-08-24 00:43] wakes up +[1518-09-23 00:19] wakes up +[1518-10-18 00:11] falls asleep +[1518-08-24 00:25] falls asleep +[1518-05-13 00:41] falls asleep +[1518-04-23 00:36] falls asleep +[1518-05-04 00:50] wakes up +[1518-10-08 00:01] Guard #463 begins shift +[1518-04-25 00:48] wakes up +[1518-03-20 00:33] falls asleep +[1518-08-03 23:56] Guard #1699 begins shift +[1518-04-13 00:10] falls asleep +[1518-06-14 23:57] Guard #2333 begins shift +[1518-08-15 00:01] Guard #1699 begins shift +[1518-06-23 00:49] falls asleep +[1518-08-08 00:42] falls asleep +[1518-09-09 00:51] falls asleep +[1518-07-16 00:04] falls asleep +[1518-03-26 00:04] Guard #523 begins shift +[1518-06-06 00:53] wakes up +[1518-06-14 00:02] falls asleep +[1518-04-05 00:39] wakes up +[1518-06-23 00:35] wakes up +[1518-10-13 00:44] falls asleep +[1518-04-24 00:27] wakes up +[1518-11-17 00:40] wakes up +[1518-05-22 23:59] Guard #1171 begins shift +[1518-02-26 00:37] falls asleep +[1518-04-15 23:57] Guard #463 begins shift +[1518-05-15 00:01] Guard #2333 begins shift +[1518-10-10 00:31] falls asleep +[1518-11-12 23:59] Guard #1913 begins shift +[1518-08-21 00:45] wakes up +[1518-06-12 00:55] wakes up +[1518-07-20 00:56] falls asleep +[1518-09-29 00:33] falls asleep +[1518-10-02 00:05] falls asleep +[1518-09-24 23:56] Guard #1861 begins shift +[1518-10-22 00:45] wakes up +[1518-06-21 00:33] falls asleep +[1518-05-05 00:04] Guard #2333 begins shift +[1518-08-04 00:53] wakes up +[1518-05-13 00:02] Guard #829 begins shift +[1518-10-15 00:57] wakes up +[1518-05-27 00:00] Guard #2333 begins shift +[1518-11-03 00:39] wakes up +[1518-09-08 00:51] wakes up +[1518-03-18 00:52] falls asleep +[1518-11-04 00:51] wakes up +[1518-10-22 00:06] falls asleep +[1518-05-04 00:59] wakes up +[1518-06-17 00:17] falls asleep +[1518-07-15 00:00] Guard #3469 begins shift +[1518-08-16 00:40] falls asleep +[1518-06-29 00:44] wakes up +[1518-11-07 00:04] Guard #463 begins shift +[1518-04-08 00:07] falls asleep +[1518-10-19 00:34] falls asleep +[1518-10-19 00:58] wakes up +[1518-07-21 00:20] wakes up +[1518-10-23 00:57] wakes up +[1518-03-01 00:46] wakes up +[1518-10-11 23:50] Guard #3469 begins shift +[1518-08-28 00:59] wakes up +[1518-07-08 00:22] falls asleep +[1518-08-22 00:18] falls asleep +[1518-10-29 00:04] falls asleep +[1518-11-14 23:56] Guard #653 begins shift +[1518-06-14 00:49] wakes up +[1518-06-22 00:34] falls asleep +[1518-08-04 00:35] falls asleep +[1518-07-31 00:11] falls asleep +[1518-11-07 00:33] falls asleep +[1518-09-30 00:34] falls asleep +[1518-09-22 00:50] wakes up +[1518-08-21 00:56] falls asleep +[1518-11-19 00:50] falls asleep +[1518-07-29 23:58] Guard #2557 begins shift +[1518-08-23 00:28] wakes up +[1518-08-20 00:42] falls asleep +[1518-08-25 00:35] falls asleep +[1518-07-15 00:48] wakes up +[1518-07-10 00:03] Guard #463 begins shift +[1518-03-31 00:46] wakes up +[1518-10-13 00:35] falls asleep +[1518-05-19 00:00] Guard #1069 begins shift +[1518-05-04 00:56] falls asleep +[1518-06-15 00:21] falls asleep +[1518-03-12 00:19] falls asleep +[1518-10-14 00:24] falls asleep +[1518-05-11 23:50] Guard #1759 begins shift +[1518-04-24 00:10] falls asleep +[1518-08-10 00:21] falls asleep +[1518-07-14 00:39] falls asleep +[1518-10-17 00:19] falls asleep +[1518-05-01 00:32] falls asleep +[1518-05-05 23:56] Guard #389 begins shift +[1518-07-27 00:43] wakes up +[1518-05-05 00:15] falls asleep +[1518-05-22 00:26] falls asleep +[1518-05-22 00:57] wakes up +[1518-09-08 23:56] Guard #73 begins shift +[1518-10-10 00:42] wakes up +[1518-07-18 00:45] wakes up +[1518-11-18 00:03] Guard #1759 begins shift +[1518-05-03 00:01] Guard #523 begins shift +[1518-10-28 00:04] Guard #337 begins shift +[1518-09-02 00:50] falls asleep +[1518-05-11 00:00] Guard #1171 begins shift +[1518-07-30 00:21] falls asleep +[1518-03-22 00:15] wakes up +[1518-08-12 00:01] falls asleep +[1518-07-12 00:02] Guard #3463 begins shift +[1518-09-10 00:25] falls asleep +[1518-09-17 00:39] wakes up +[1518-09-17 00:36] falls asleep +[1518-08-31 00:13] falls asleep +[1518-11-04 00:47] falls asleep +[1518-10-16 00:03] falls asleep +[1518-05-16 00:43] wakes up +[1518-09-29 00:03] Guard #1759 begins shift +[1518-08-03 00:30] falls asleep +[1518-10-06 00:39] wakes up +[1518-05-06 00:19] falls asleep +[1518-06-10 00:51] wakes up +[1518-06-11 23:59] Guard #1699 begins shift +[1518-05-18 00:58] wakes up +[1518-07-19 00:20] falls asleep +[1518-10-10 23:58] Guard #829 begins shift +[1518-07-01 00:17] falls asleep +[1518-06-26 00:00] Guard #523 begins shift +[1518-11-16 00:21] wakes up +[1518-07-30 00:27] wakes up +[1518-04-21 00:00] Guard #1399 begins shift +[1518-06-23 00:11] falls asleep +[1518-08-07 00:00] Guard #1759 begins shift +[1518-05-27 00:58] wakes up +[1518-08-11 00:01] falls asleep +[1518-09-23 00:58] wakes up +[1518-06-11 00:01] Guard #2557 begins shift +[1518-11-09 00:44] falls asleep +[1518-10-01 00:00] Guard #463 begins shift +[1518-09-07 00:16] wakes up +[1518-08-11 23:46] Guard #523 begins shift +[1518-07-29 00:25] falls asleep +[1518-03-01 00:03] Guard #1123 begins shift +[1518-03-10 00:14] falls asleep +[1518-08-20 00:21] falls asleep +[1518-05-09 00:02] falls asleep +[1518-05-13 23:46] Guard #3253 begins shift +[1518-08-27 23:56] Guard #151 begins shift +[1518-10-27 00:22] wakes up +[1518-07-15 00:56] falls asleep +[1518-08-09 00:52] wakes up +[1518-05-16 00:32] falls asleep +[1518-08-16 00:47] wakes up +[1518-05-07 00:55] falls asleep +[1518-09-14 00:57] wakes up +[1518-05-14 00:42] falls asleep +[1518-10-09 23:59] Guard #2333 begins shift +[1518-11-01 00:59] wakes up +[1518-07-13 00:43] falls asleep +[1518-05-28 00:01] Guard #1759 begins shift +[1518-11-22 00:43] wakes up +[1518-05-07 00:57] wakes up +[1518-04-07 00:48] wakes up +[1518-11-12 00:46] wakes up +[1518-04-20 00:06] falls asleep +[1518-08-08 00:54] wakes up +[1518-10-20 00:03] falls asleep +[1518-02-26 00:14] wakes up +[1518-07-15 23:50] Guard #389 begins shift +[1518-05-19 00:51] falls asleep +[1518-06-11 00:29] falls asleep +[1518-03-01 00:57] wakes up +[1518-07-19 00:58] wakes up +[1518-03-15 00:12] falls asleep +[1518-03-26 23:58] Guard #3463 begins shift +[1518-10-21 23:56] Guard #3253 begins shift +[1518-09-13 00:04] falls asleep +[1518-05-16 23:52] Guard #389 begins shift +[1518-11-20 00:49] wakes up +[1518-03-31 00:01] Guard #2557 begins shift +[1518-08-23 00:51] wakes up +[1518-09-17 00:52] falls asleep +[1518-07-26 00:18] wakes up +[1518-06-30 00:00] Guard #2557 begins shift +[1518-05-01 00:40] wakes up +[1518-10-12 00:01] falls asleep +[1518-03-15 00:47] wakes up +[1518-10-24 00:43] falls asleep +[1518-03-26 00:44] falls asleep +[1518-06-16 00:40] falls asleep +[1518-07-20 00:38] wakes up +[1518-08-27 00:13] falls asleep +[1518-09-07 00:45] wakes up +[1518-06-17 00:39] falls asleep +[1518-03-20 00:56] wakes up +[1518-03-02 00:49] falls asleep +[1518-08-21 00:00] Guard #3469 begins shift +[1518-04-24 00:43] wakes up +[1518-07-24 00:13] wakes up +[1518-03-21 23:50] Guard #523 begins shift +[1518-03-01 00:24] wakes up +[1518-08-21 00:50] wakes up +[1518-09-11 00:44] wakes up +[1518-04-23 00:39] wakes up +[1518-11-09 00:29] wakes up +[1518-08-28 00:15] falls asleep +[1518-05-31 00:56] wakes up +[1518-08-16 00:11] falls asleep +[1518-11-08 00:24] falls asleep +[1518-10-06 00:38] falls asleep +[1518-03-19 00:33] wakes up +[1518-11-16 00:00] Guard #1597 begins shift +[1518-11-17 00:54] wakes up +[1518-09-22 00:00] Guard #1069 begins shift +[1518-03-04 00:04] Guard #3469 begins shift +[1518-04-15 00:46] falls asleep +[1518-09-25 00:52] wakes up +[1518-04-02 00:36] falls asleep +[1518-03-23 00:03] Guard #1597 begins shift +[1518-08-19 00:35] wakes up +[1518-11-07 00:53] wakes up +[1518-04-21 00:25] falls asleep +[1518-08-05 00:45] falls asleep +[1518-04-16 00:50] wakes up +[1518-04-13 00:35] wakes up +[1518-10-23 00:26] falls asleep +[1518-08-17 00:54] wakes up +[1518-05-10 00:19] falls asleep +[1518-11-22 00:00] Guard #1699 begins shift +[1518-07-19 00:36] wakes up +[1518-05-09 00:49] wakes up +[1518-04-29 00:00] falls asleep +[1518-05-12 00:55] wakes up +[1518-10-30 00:24] falls asleep +[1518-09-10 00:28] wakes up +[1518-03-05 00:01] Guard #1759 begins shift +[1518-04-24 00:03] Guard #1861 begins shift +[1518-11-08 00:09] wakes up +[1518-05-24 23:58] Guard #1759 begins shift +[1518-07-04 00:54] wakes up +[1518-04-24 00:40] falls asleep +[1518-09-01 00:11] falls asleep +[1518-10-13 00:58] wakes up +[1518-04-18 23:50] Guard #3463 begins shift +[1518-11-02 00:59] wakes up +[1518-11-23 00:32] wakes up +[1518-08-05 23:46] Guard #1399 begins shift +[1518-04-05 00:58] wakes up +[1518-10-26 00:16] wakes up +[1518-06-11 00:19] falls asleep +[1518-03-06 00:50] wakes up +[1518-06-23 00:15] wakes up +[1518-10-13 00:41] wakes up +[1518-03-28 00:55] wakes up +[1518-05-30 00:03] falls asleep +[1518-03-02 00:10] falls asleep +[1518-04-12 00:01] Guard #389 begins shift +[1518-11-10 00:41] falls asleep +[1518-11-10 00:53] wakes up +[1518-11-21 00:15] falls asleep +[1518-09-14 00:22] falls asleep +[1518-07-17 00:55] wakes up +[1518-06-29 00:24] falls asleep +[1518-03-19 00:58] wakes up +[1518-09-16 00:36] falls asleep +[1518-09-17 23:51] Guard #3253 begins shift +[1518-04-17 23:50] Guard #2557 begins shift +[1518-08-26 00:56] wakes up +[1518-03-12 00:00] Guard #1123 begins shift +[1518-04-22 23:57] Guard #1699 begins shift +[1518-08-02 23:58] Guard #829 begins shift +[1518-05-03 00:44] wakes up +[1518-04-02 00:45] wakes up +[1518-11-02 00:52] wakes up +[1518-03-26 00:51] wakes up +[1518-06-06 00:01] Guard #2557 begins shift +[1518-08-02 00:53] falls asleep +[1518-03-19 00:05] falls asleep +[1518-07-28 00:37] falls asleep +[1518-11-06 00:55] wakes up +[1518-03-28 00:16] falls asleep +[1518-06-02 00:13] falls asleep +[1518-06-30 00:38] wakes up +[1518-03-24 00:35] wakes up +[1518-09-19 00:48] wakes up +[1518-10-19 00:17] wakes up +[1518-11-09 23:59] Guard #1861 begins shift +[1518-06-11 00:54] wakes up +[1518-08-11 00:52] wakes up +[1518-09-25 00:34] wakes up +[1518-08-29 00:18] wakes up +[1518-06-04 00:50] wakes up +[1518-05-03 00:28] wakes up +[1518-05-18 00:43] falls asleep +[1518-06-10 00:15] falls asleep +[1518-05-02 00:30] falls asleep +[1518-06-07 00:31] falls asleep +[1518-03-18 23:52] Guard #523 begins shift +[1518-10-21 00:40] wakes up +[1518-03-12 23:52] Guard #1699 begins shift +[1518-09-24 00:28] falls asleep +[1518-09-03 00:26] falls asleep +[1518-08-22 00:50] wakes up +[1518-06-10 00:00] Guard #523 begins shift +[1518-09-07 00:07] falls asleep +[1518-03-22 00:04] falls asleep +[1518-11-17 00:27] wakes up +[1518-03-29 00:58] wakes up +[1518-05-07 00:51] wakes up +[1518-03-14 00:04] Guard #463 begins shift +[1518-11-16 23:59] Guard #1699 begins shift +[1518-10-28 23:49] Guard #3253 begins shift +[1518-04-07 00:01] Guard #1399 begins shift +[1518-07-10 00:52] wakes up +[1518-03-01 00:52] falls asleep +[1518-06-09 00:47] falls asleep +[1518-05-25 00:35] falls asleep +[1518-06-18 00:59] wakes up +[1518-04-28 23:47] Guard #523 begins shift +[1518-04-10 00:27] falls asleep +[1518-07-01 00:44] wakes up +[1518-07-06 23:54] Guard #1123 begins shift +[1518-04-13 00:28] wakes up +[1518-06-14 00:38] wakes up +[1518-06-22 00:54] wakes up +[1518-03-01 23:58] Guard #1123 begins shift +[1518-08-12 00:54] falls asleep +[1518-10-05 00:59] wakes up +[1518-07-08 00:04] Guard #389 begins shift +[1518-10-22 23:57] Guard #389 begins shift +[1518-03-06 00:58] wakes up +[1518-03-12 00:49] wakes up +[1518-10-09 00:56] falls asleep +[1518-04-10 00:03] Guard #1699 begins shift +[1518-03-06 00:38] falls asleep +[1518-10-27 00:53] wakes up +[1518-08-30 00:04] Guard #653 begins shift +[1518-07-13 00:14] wakes up +[1518-05-28 00:57] wakes up +[1518-11-20 23:57] Guard #1861 begins shift +[1518-09-01 00:41] wakes up +[1518-10-18 00:56] wakes up +[1518-05-10 00:53] falls asleep +[1518-02-26 00:03] Guard #3469 begins shift +[1518-09-04 00:00] Guard #3253 begins shift +[1518-04-23 00:24] falls asleep +[1518-06-25 00:00] Guard #1399 begins shift +[1518-09-22 00:53] falls asleep +[1518-09-21 00:03] Guard #829 begins shift +[1518-06-16 23:58] Guard #2557 begins shift +[1518-11-01 00:15] wakes up +[1518-08-06 00:43] falls asleep +[1518-11-07 23:49] Guard #1123 begins shift +[1518-04-01 00:03] falls asleep +[1518-04-15 00:54] falls asleep +[1518-08-03 00:53] wakes up +[1518-04-25 00:01] Guard #1399 begins shift +[1518-09-14 00:46] wakes up +[1518-08-10 00:04] Guard #1069 begins shift +[1518-08-04 23:56] Guard #829 begins shift +[1518-04-19 00:40] wakes up +[1518-10-16 23:46] Guard #1069 begins shift +[1518-10-11 00:25] wakes up +[1518-07-16 00:59] wakes up +[1518-04-28 00:04] Guard #3463 begins shift +[1518-09-12 00:02] Guard #463 begins shift +[1518-06-28 00:45] falls asleep +[1518-10-15 00:48] falls asleep +[1518-06-21 00:00] Guard #523 begins shift +[1518-06-13 23:47] Guard #1069 begins shift +[1518-03-08 00:35] wakes up +[1518-04-21 00:22] wakes up +[1518-05-14 00:50] wakes up +[1518-06-03 00:36] falls asleep +[1518-07-28 00:07] falls asleep +[1518-03-25 00:47] wakes up +[1518-07-13 00:51] wakes up +[1518-07-24 00:01] falls asleep +[1518-06-23 23:58] Guard #1399 begins shift +[1518-07-27 00:12] falls asleep +[1518-04-20 00:53] wakes up +[1518-08-26 00:26] wakes up +[1518-03-10 00:57] wakes up +[1518-07-29 00:34] wakes up +[1518-06-05 00:43] wakes up +[1518-05-29 00:19] falls asleep +[1518-04-11 00:00] Guard #1123 begins shift +[1518-05-14 00:58] wakes up +[1518-04-02 00:02] Guard #1399 begins shift +[1518-08-14 00:09] falls asleep +[1518-09-22 00:56] wakes up +[1518-10-08 00:54] wakes up +[1518-11-05 00:03] Guard #829 begins shift +[1518-04-07 00:10] falls asleep +[1518-07-23 00:00] Guard #73 begins shift +[1518-08-12 00:58] wakes up +[1518-09-23 00:53] falls asleep +[1518-07-06 00:03] Guard #151 begins shift +[1518-08-26 00:45] wakes up +[1518-06-09 00:02] Guard #2333 begins shift +[1518-03-14 00:54] wakes up +[1518-06-11 00:47] wakes up +[1518-07-29 00:48] falls asleep +[1518-05-16 00:57] falls asleep +[1518-06-04 00:11] falls asleep +[1518-06-23 00:57] wakes up +[1518-10-31 00:26] falls asleep +[1518-10-23 00:46] wakes up +[1518-07-18 00:56] wakes up +[1518-03-08 00:03] falls asleep +[1518-05-15 00:30] falls asleep +[1518-03-23 00:32] falls asleep +[1518-06-25 00:58] wakes up +[1518-10-25 00:56] wakes up +[1518-04-11 00:06] falls asleep +[1518-10-09 00:01] falls asleep +[1518-05-26 00:25] wakes up +[1518-07-20 00:14] wakes up +[1518-08-22 00:04] Guard #73 begins shift +[1518-06-24 00:09] falls asleep +[1518-11-19 00:56] wakes up +[1518-04-06 00:03] falls asleep +[1518-09-06 00:32] falls asleep +[1518-07-07 00:00] falls asleep +[1518-07-25 23:54] Guard #73 begins shift +[1518-06-19 00:10] falls asleep +[1518-04-09 00:01] Guard #3371 begins shift +[1518-05-15 00:53] wakes up +[1518-07-18 00:41] falls asleep +[1518-10-24 00:27] wakes up +[1518-03-17 00:57] wakes up +[1518-05-08 00:01] Guard #151 begins shift +[1518-07-30 23:56] Guard #3463 begins shift +[1518-10-05 00:29] falls asleep +[1518-04-12 00:19] falls asleep +[1518-08-31 00:40] wakes up +[1518-05-27 00:47] falls asleep +[1518-09-02 23:58] Guard #523 begins shift +[1518-06-12 00:12] falls asleep +[1518-06-11 00:26] wakes up +[1518-05-10 00:58] wakes up +[1518-10-11 00:20] falls asleep +[1518-03-29 00:57] falls asleep +[1518-07-04 00:21] falls asleep +[1518-07-20 00:46] falls asleep +[1518-10-01 00:52] wakes up +[1518-11-06 00:47] falls asleep +[1518-04-29 00:38] falls asleep +[1518-07-02 00:35] falls asleep +[1518-06-05 00:24] falls asleep +[1518-09-16 00:43] wakes up +[1518-10-15 00:56] falls asleep +[1518-03-17 00:24] wakes up +[1518-06-08 00:04] falls asleep +[1518-07-12 00:55] wakes up +[1518-09-13 00:39] wakes up +[1518-03-20 00:09] falls asleep +[1518-03-21 00:15] wakes up +[1518-07-03 00:39] falls asleep +[1518-03-01 00:07] falls asleep +[1518-05-03 00:50] wakes up +[1518-05-10 00:32] wakes up +[1518-05-09 00:34] falls asleep +[1518-09-16 00:59] wakes up +[1518-03-29 00:52] wakes up +[1518-03-15 23:58] Guard #73 begins shift +[1518-06-26 00:23] falls asleep +[1518-09-03 00:55] wakes up +[1518-08-28 00:28] wakes up +[1518-07-13 00:17] falls asleep +[1518-09-28 00:46] wakes up +[1518-06-20 00:01] Guard #2557 begins shift +[1518-03-01 00:43] falls asleep +[1518-09-28 00:19] falls asleep +[1518-06-19 00:18] wakes up +[1518-10-19 00:16] falls asleep +[1518-11-18 00:40] falls asleep +[1518-06-01 00:01] falls asleep +[1518-07-17 00:28] falls asleep +[1518-09-16 00:57] falls asleep +[1518-07-11 00:44] falls asleep +[1518-05-18 00:04] Guard #1399 begins shift +[1518-08-07 00:17] falls asleep +[1518-05-14 00:38] wakes up +[1518-09-25 00:15] falls asleep +[1518-07-25 00:57] wakes up +[1518-05-20 00:29] wakes up +[1518-04-17 00:55] wakes up +[1518-11-02 00:33] falls asleep +[1518-08-15 00:46] wakes up +[1518-06-08 00:49] wakes up +[1518-11-03 00:10] falls asleep +[1518-05-02 00:38] wakes up +[1518-09-21 00:57] wakes up +[1518-08-04 00:51] falls asleep +[1518-03-06 23:56] Guard #3371 begins shift +[1518-07-15 00:59] wakes up +[1518-09-05 00:13] falls asleep +[1518-08-17 00:02] Guard #1399 begins shift +[1518-07-05 00:02] Guard #151 begins shift +[1518-05-17 00:02] falls asleep +[1518-10-11 00:58] wakes up +[1518-10-24 23:56] Guard #389 begins shift +[1518-11-09 00:52] wakes up +[1518-07-05 00:57] wakes up +[1518-04-30 00:54] wakes up +[1518-04-01 00:49] wakes up +[1518-06-11 00:53] falls asleep +[1518-06-23 00:01] Guard #1597 begins shift +[1518-03-17 00:02] Guard #1399 begins shift +[1518-10-15 00:53] wakes up +[1518-09-11 00:43] falls asleep +[1518-10-26 00:04] Guard #73 begins shift +[1518-08-02 00:02] Guard #463 begins shift +[1518-05-01 00:43] falls asleep +[1518-10-04 23:56] Guard #829 begins shift +[1518-11-01 00:23] falls asleep +[1518-09-18 00:02] falls asleep +[1518-06-16 00:50] wakes up +[1518-09-05 23:59] Guard #1069 begins shift +[1518-07-08 00:53] wakes up +[1518-05-24 00:51] wakes up +[1518-10-26 00:15] falls asleep +[1518-11-04 00:54] falls asleep +[1518-05-10 00:46] wakes up +[1518-04-18 00:53] wakes up +[1518-05-03 00:08] falls asleep +[1518-06-28 23:58] Guard #1069 begins shift +[1518-07-31 00:24] wakes up +[1518-11-19 00:39] wakes up +[1518-07-12 23:58] Guard #2333 begins shift +[1518-07-22 00:57] wakes up +[1518-03-28 23:56] Guard #829 begins shift +[1518-04-30 23:50] Guard #2333 begins shift +[1518-05-07 00:00] Guard #1759 begins shift +[1518-06-26 23:56] Guard #151 begins shift +[1518-03-18 00:28] falls asleep +[1518-10-02 00:57] falls asleep +[1518-03-13 00:51] falls asleep +[1518-05-03 23:46] Guard #3469 begins shift +[1518-10-19 00:00] Guard #523 begins shift +[1518-09-13 00:52] falls asleep +[1518-04-11 00:07] wakes up +[1518-09-08 00:25] falls asleep +[1518-10-11 00:48] falls asleep +[1518-04-27 00:37] falls asleep +[1518-09-11 00:01] Guard #2333 begins shift +[1518-08-25 00:40] wakes up +[1518-03-24 00:51] wakes up +[1518-02-28 00:17] falls asleep +[1518-04-25 00:34] falls asleep +[1518-07-16 00:57] falls asleep +[1518-05-29 00:24] wakes up +[1518-07-21 00:57] wakes up +[1518-04-06 00:44] wakes up +[1518-04-17 00:13] wakes up +[1518-10-30 00:41] falls asleep +[1518-06-30 00:49] falls asleep +[1518-07-14 00:45] wakes up +[1518-09-04 00:11] falls asleep +[1518-05-26 00:11] falls asleep +[1518-11-11 00:58] wakes up +[1518-07-10 00:16] falls asleep +[1518-10-14 00:58] wakes up +[1518-10-07 00:37] falls asleep +[1518-04-22 00:02] Guard #1399 begins shift +[1518-09-20 00:57] wakes up +[1518-06-03 00:07] falls asleep +[1518-07-12 00:50] falls asleep +[1518-05-01 00:55] wakes up +[1518-04-17 00:27] falls asleep +[1518-07-23 23:46] Guard #1597 begins shift +[1518-09-28 00:41] falls asleep +[1518-11-06 00:00] Guard #829 begins shift +[1518-04-14 00:47] falls asleep +[1518-03-18 00:48] wakes up +[1518-06-22 00:57] falls asleep +[1518-09-09 00:21] wakes up +[1518-03-02 00:57] wakes up +[1518-08-20 00:33] wakes up +[1518-05-29 23:50] Guard #1399 begins shift +[1518-03-02 23:56] Guard #1399 begins shift +[1518-04-11 00:46] wakes up +[1518-04-19 00:26] wakes up +[1518-07-09 00:59] wakes up +[1518-11-08 00:05] falls asleep +[1518-07-22 00:04] Guard #1913 begins shift +[1518-09-04 00:39] falls asleep +[1518-04-29 00:34] wakes up +[1518-04-05 00:00] Guard #523 begins shift +[1518-05-20 00:01] falls asleep +[1518-09-15 00:42] falls asleep +[1518-03-25 00:02] Guard #1699 begins shift +[1518-08-08 00:00] Guard #3253 begins shift +[1518-04-10 00:41] wakes up +[1518-04-07 23:59] Guard #829 begins shift +[1518-09-02 00:58] wakes up +[1518-10-05 00:34] wakes up +[1518-06-21 23:57] Guard #1699 begins shift +[1518-07-30 00:49] wakes up +[1518-02-25 00:54] falls asleep +[1518-03-22 00:48] wakes up +[1518-10-01 23:50] Guard #1699 begins shift +[1518-11-17 00:38] falls asleep +[1518-06-27 00:56] falls asleep +[1518-03-14 00:49] falls asleep +[1518-09-01 23:58] Guard #389 begins shift +[1518-08-04 00:42] wakes up +[1518-05-12 00:04] falls asleep +[1518-03-30 00:47] falls asleep +[1518-06-20 00:26] falls asleep +[1518-03-19 23:56] Guard #3463 begins shift +[1518-03-24 00:01] Guard #1123 begins shift +[1518-11-14 00:28] falls asleep +[1518-07-18 00:03] Guard #3463 begins shift +[1518-10-27 00:18] falls asleep +[1518-02-24 23:57] Guard #1913 begins shift +[1518-09-05 00:01] Guard #151 begins shift +[1518-07-07 00:23] wakes up +[1518-11-05 00:53] wakes up +[1518-05-24 00:03] falls asleep +[1518-09-22 23:56] Guard #1913 begins shift +[1518-05-14 00:00] falls asleep +[1518-03-13 00:55] wakes up +[1518-09-11 00:40] wakes up +[1518-07-08 00:44] falls asleep +[1518-07-31 00:59] wakes up +[1518-08-13 00:40] wakes up +[1518-09-02 00:41] wakes up +[1518-09-26 00:17] falls asleep +[1518-08-23 00:07] falls asleep +[1518-07-15 00:12] falls asleep +[1518-03-13 00:00] falls asleep +[1518-03-04 00:39] falls asleep +[1518-08-28 00:57] falls asleep +[1518-03-28 00:45] falls asleep +[1518-07-12 00:34] wakes up +[1518-02-25 00:56] wakes up +[1518-10-08 00:30] falls asleep +[1518-02-28 00:52] wakes up +[1518-05-10 00:00] Guard #1861 begins shift +[1518-11-08 00:40] wakes up +[1518-08-31 00:45] falls asleep +[1518-06-20 00:43] falls asleep +[1518-06-21 00:39] wakes up +[1518-07-20 00:57] wakes up +[1518-08-29 00:02] falls asleep +[1518-03-19 00:55] falls asleep +[1518-06-01 23:56] Guard #73 begins shift +[1518-10-31 23:58] Guard #3463 begins shift +[1518-06-25 00:51] falls asleep +[1518-10-17 00:00] falls asleep +[1518-11-12 00:20] falls asleep +[1518-07-27 00:26] wakes up +[1518-03-21 00:00] Guard #1759 begins shift +[1518-08-01 00:40] falls asleep diff --git a/day4p2/main b/day4p2/main new file mode 100755 index 0000000000000000000000000000000000000000..c992581e6809684ca88823be3338280c452e7e92 GIT binary patch literal 17920 zcmeHPeQ;dWb-$|*Ec_t}kU>Dei$TS-c#)0m$Ogko*0Y}&8H}+^QZSFTb|r1R+EsSn z+A;$~AnbZsi>eHzZc0;4GDA(P)L^?>qPW?m6e)d+yi!xL02>+BcVZJc2{HxJ3{*dVxaxI$_`z9Rcx+ zCb0A8i8MJk1**#k4`|G3E4peqK^W@XBkRPU!M8b?T9C##bu&@r{MFmK=cK)s*$f9O+GJy-BUd zbeal;z?A(-KB3>sx;(|Sm6Q;ek}QR7@7Y0$uenOHbLb8Q3#P1hC-kVCzi(i-Z`b*` z`K3{ppQ)~{xFHhWy>877k>JWmIGXHV+26Eo<+?S#M9jBZ)|>2;?3UX*WRb|N+LTPM z15X&GH$5@@+eH_g{buIywQqlG^`S?6#v3_Gy8=J5LG?P+jF$0=g@i4`k3x&_;}8D% zXHPyD*?CcJ;>%z7-1-mG+&z_m<9Z_uUFhIB`Y)hta*==CMgA!l`7gW3Ctc*TF7iI$Ui^x~Fo06!?{=|&g$rKgf}e4*|Evq%;$p{i z!S8ml^N@@Dw_W6En(*RR91g(F@?sGDH-XoRdNJuQOdON=rDD1WUj@9BpO0zzVmndb z7l=#q_IaKX7{}fCtz7MEq|w_bthOCntzak~>JBIDP<+SMO_5kMv?H)P5)zix-5ZNq z2|EzCElY`(6zsNo1CdCqvr%+gi3ki?eeqCVC>qT3iCEmuGhOje$m&W)B0zcqi5|V)UWUcnC$;Vdv)>1#>8Mh2`EybNbXF8>D8pS>MM{_U5%0!dwQzS1$T{ygi zX6_$oEO}Y@eA0N06cBh_<^DCIJL!a8HyPi?xL>LX#wRpCeyhT1?&md*kO>FQ>j2@C z4jcu_hl~TS$)i}W9r)!Ae8z!07n4c95~6#Ss~qz68eafRyFjLT9XNTG!wSEOkv!jO z5Yp(Us}O|C`y$B+(d1VV!kz28-+@ya2h*=>1Qv+2*IKvcFJ8<@F1G#gM$d<&wbt z4t%i^k=Gsvj*gHIeGa@jj|$Q6!17Iha zh+oC1UP~DSJ?d8s;TNl@ypH-6L--{sDzC@=iXpsSMdfwOuNcBFRZ)38<5vvfm#OId zb>0K>9+>yQ@8yAC*Iaql9Q>flOjrKv4MLa)#_Y1(xHDOn-;FA-lu{PZ~h4ZDe_r6oHl`9CI}mXz$c+EPEd&rH2z4!%3R zZAbf1tNu!+CWuqva4oU>#RPNZ(!pP zbVc&U4s&qhlaLf<>OFgjncmn1JhyZJP^J^UJXIM4;MsMu%U84PF)D^Q*)bj_l)1HVpZX>5%ez4_)wik zA+?_I)G0)#9VVvJg(kpj6NnX=00I-&ok~sbIw?yv_`&@s+0mexu4q^xYirD`8bc08 z&7rm5Kvy$Ur!znMG?z0|#-us;(4o$1^75sJo^I1jCtBPLky?{LC1*C{tg2S zD#yvverf4+<`JS2GscGz8LxR>JT_)uL{W2So5xIb5OniB$#*_0c~|nCS>+n1@+q08 zGMl`{Om`ed%m4lLK!?`8ff0qm$WmthUse+V}#kPFEir#Wfo*3^l%)C_VPcIMVb#s^=PCeUnyGmG}2a7G3V zH8`_uU%iSi9-O&kpEQr=8l1UlZ=P{`QLCf4%C_}U0)Jjr7dr-N^-X+eAAJQ48{q?Y2Hg$=v z{~0s&CKcuvXUUPq8Nid~(AF_?i2A^*l=Kp*4$kCi4#=*hJIB4GkVZFy!~o)_4Gare zmov!wpLDyN%A1Ahlrb^Y1f2;pjV3jw5k(iTLwU%3h}Nf!V^a%dyyI9(Rs^#CD$+!E zo)F0sNJJU8&IHXH7t1kVS7t6iCa5e0*+O+XhaYG!MaWn+2B*ji2+W41PIWjj;kAlx+ zp;N}8sojVjayqV`I`PqTAC>^)XlvS}F$gM$@zJzdB~!Oy5JO1Zy%W>y(8k+fT1^wR zD2E=nuqvH$2u?X9l7C^QD{s3N4VOCcJ#xkO>GC37GB=S@${2;s5zyi6%Rs@vwbWaW zBYIr+)|vxfRViTWQ)6c8B_xgNaa0K_=+F-Tx_VjzIt;N|yI{+N8RTsIj#L zvz62zOHmcsBD#48DZ#27g0GPs*htg71(KJgdOv`B7FF+hh)q=ttL}hu%bE|P=ELX? ztEf91pj#W1j3$2BC6Li5#yTcbISu@rEVSxwosxYQ84jTSXJF=tpf%Yzl9n|&gE?{i zOYyR)y0jEbN#jVTk$%J+>KHJGhWe48vM($0^vBXYUz1j3Wsan4(^65k;j6f#P<3gC zq?8gh-j#L4#%S2 zu2?b}^eq(kG$dEb|K5h=hKA%WWx!3pExH#U8-iXt+#7;&7rxdcyn#d{6zUWE0((LU zZ?aEpNe1FU@6`=S?{0hziYB~?o^Y2f!qL8@t;=^$L*p9c+qha?ycF9&mt81^cSS?; zI(qcScV1}h&Z+`6nQ97v&trcNcFrNp6toB}KP~63K||rLQ?81zpeO zmWnH^T2lD>96%%zIZ{^u*T^DstR`TVgMiT7t|8D2ER4<-H-eSASbG8 zH&@r+R<#1j`Z>?%1MCIkKuRKN4Qg>{8_*JF%PG|0r+v$`){d><D z+S^iH-%?%MQe7ptP27z9P1vEANb_Od1M?o3_rSad<~=a)fq4(idtlxJ|DQa-`=5Bf z6Wy9qD5kW>io#+=^82EfXue)=QsTWPyw8gFF7dMj?>XW9R`gszfzy9;E*FzLJwqVy zJ$fJB7*fzg_;tE^dK2O&x_tOpB165V&b>7RX*D7INJ%*ZIZ>4N+Kke} z8v=b;rZA=p%;la|uzbd&DCdt?P$K#&l^X1n0 z{BIH7S6-a|I{B1|$1+WKYTBjgUQG{b`n0CcYWlpUr!;+2)1Pblv8Lzg%~%&}`Uje> z({!_@J2manbg!ldHGNuBuE&I5#kOqPw86UqyS}gUHu+ZjR(V%9u4-y*x^Wc?eg-Ya zsNr)7PBGfs$ouOH@pADlcR)u%Id&9Qm1yvCj0W!a4srD9^8}BNLVSVXepHB83GRP| z`1$#MU5GCf-2V%4j5ggah4^COEr~A?BSn5Ey>d~VKR;4vr$+F+Qi#L2*NLcjId%~9 zxddlwId&o+y2^>L{6+cwpw85CyanO;sSsZ(O7;J8?9}7^poQ|7J^W5Y#mg}}jF-e` z_dh$e%1i9jqxqsj{7QZVa>~-QQ3|IGC1vpQWRd@Aek8n>cAz-I3d9NLb%B%USdRxg z3NwC%@VvEE;&c6G11CGY&L}PHuaxq0{r@+>OO@ZPUe8K97m7EQBT^Jf**PX`R?Pe^%;FMVSb()ib0?2IA37UOr?uLU*vj*I*$ZT~slIP%>ubk0gY&(7O7 zXghB}p6pNhHK56)w)4Kep_1=-k@lX%3uTEr>w;HcT`bj4YFu#Yzoq2Yx!|HOjNoMShP9{wQ#2-(o*J0o+R!EDA?~FE7G~eUR*z&0S|-Ci@OQ>)SrYW?Ev&0E_x6{g5jJ%Dg?W*MfoV76`-)|U1=TAJIfJ2r2=%h+MKI@QCH>!veHhqD3B4ma3!Uu4tI{Bhb z(-h`XeB@>}bxpnmeE4Y2k(yayRba;%A$hh)9vwnk;@FKoaH9_A6zi!oPV!8XKHO6* z;jo-PeN=p$$_gf8IHnX0;;2=@d8Pb8D68!blp`39TFFER4LREe@)VRhX7m|Z>qAV` z4+C-SU09htPbAM7734j87)qYOk|(TW3^vr^r^5WyNvJ|>_Ba?icMvDS^v6C+ec|JS zP{m3PpUs~1vMd})fD?CzFXjq-XD#U~@vA-9m&Oq(BqCFhLS*=jKPxzuS zJLGF_XQ$bGk{KD52?p+odypp}>)|A!FWeqrgtJ*f)(yvCH@N9bfJ%WeSZF9dJPL|TCCp+9G`?^oIgJ&GHud&e1Dl=7c_o5D7_LL~Hk{!;F!auY_4)afDbINQa-PgH{p+Iq`R_h34e9q} ztk3x~|BWJje!geQ?-N;`+R7Q814HHK_7h&6swthLcLpvuW8X%^sn72VnC@UfO^frV zO{PwLey_lE+kcb)E6}gTPY<*F`v?B}2F2xNp6QRFTjS8@_Y@O2BSC@X6gSH={x%Y* z?{WV8yvu(-g8xng_fOX2c02-Isv_(2dyjGb0MLjuXJCD%?<3KvFZ^0sD~>yr5obN7 zzXs;iANMPTajjpg*!-3C82AJc!npjCew8xmqVHA7`Rh5vD1R-U$5~%LhUIaRrQoFb zzN?bdl@ + +#include + +enum action { + ACTION_BEGIN, + ACTION_SLEEP, + ACTION_WAKE +}; + +struct event { + unsigned year; + unsigned month; + unsigned day; + unsigned hour; + unsigned minute; + enum action action; + unsigned guard; +}; + +struct slept_minute { + unsigned minute; + unsigned count; +}; + +gint compare_event(gconstpointer a, gconstpointer b) +{ +#define _(x) (int)( \ + (x)->year * 12 * 32 * 24 * 60 + \ + (x)->month * 32 * 24 * 60 + \ + (x)->day * 24 * 60 + \ + (x)->hour * 60 + \ + (x)->minute) + return (_((struct event *)a) - _((struct event *)b)); +#undef _ +} + +GSList *parse_events(const char *fname) +{ + FILE *f = fopen(fname, "r"); + if (!f) { + perror(fname); + return NULL; + } + + GSList *list = NULL; + + char *line = NULL; + size_t line_len = 0; + while (getline(&line, &line_len, f) != -1) { + g_strstrip(line); + + // Find the action text + char *action = line; + while (*action && *action++ != '['); + while (*action && *action++ != ']'); + if (*action) *action++ = '\0'; // Expect a minimum of one space + if (!*action) { + fprintf(stderr, "Warning: ignoring '%s': No action found.\n", line); + continue; + } + g_strstrip(action); + + struct event *event = g_malloc0(sizeof(struct event)); + + // Haha what is proper parsing + sscanf(line, "[%u-%u-%u %u:%u]", + &event->year, + &event->month, + &event->day, + &event->hour, + &event->minute + ); + + // Basic sanity check + if (event->month >= 12 || + event->day >= 32 || + event->hour >= 24 || + event->minute >= 60) { + fprintf(stderr, "Warning: ignoring '%s': Invalid time.\n", line); + g_free(event); + continue; + } + + // Figure out the action + if (strcmp(action, "falls asleep") == 0) { + event->action = ACTION_SLEEP; + } else if (strcmp(action, "wakes up") == 0) { + event->action = ACTION_WAKE; + } else { + sscanf(action, "Guard #%u begins shift", &event->guard); + if (!event->guard) continue; + } + + list = g_slist_prepend(list, event); + } + + free(line); + fclose(f); + + // We can't do much without information about the guards + unsigned current_guard = 0; + list = g_slist_sort(list, compare_event); + for (GSList *l = list; l; l = l->next) { + struct event *event = (struct event *)l->data; + if (event->action == ACTION_BEGIN) { + current_guard = event->guard; + } else { + event->guard = current_guard; + } + } + + return list; +} + +unsigned find_sleepiest_minute(GSList *events, unsigned guard, unsigned *count) +{ + // Figure out which is the guard's most slept minute + // Also assuming all sleep hours are at 12am + unsigned char slept[60] = {0}; + + unsigned start_time = 0; + for (GSList *l = events; l; l = l->next) { + struct event *event = (struct event *)l->data; + if (event->guard != guard) continue; + + if (event->action == ACTION_SLEEP) { + start_time = event->minute; + } else if (event->action == ACTION_WAKE) { + for (unsigned i = start_time; i < event->minute; i++) { + if (slept[i] >= UCHAR_MAX) continue; + slept[i]++; + } + } + } + + unsigned slept_minute = 0; + unsigned slept_minute_count = 0; + for (unsigned i = 0; i < 60; i++) { + if (slept[i] > slept_minute_count) { + slept_minute = i; + slept_minute_count = slept[i]; + } + } + + if (count) *count = slept_minute_count; + return slept_minute; +} + +int main() +{ + GSList *events = parse_events("input"); + for (GSList *l = events; l; l = l->next) { + struct event *event = (struct event *)l->data; + printf("[%04u-%02u-%02u %02u:%02u] %u (%u)\n", + event->year, event->month, event->day, + event->hour, event->minute, + event->action, event->guard); + } + + // Find the sleepiest minute for each guard + GHashTable *table = g_hash_table_new_full(NULL, NULL, NULL, g_free); + for (GSList *l = events; l; l = l->next) { + struct event *event = (struct event *)l->data; + if (event->action != ACTION_BEGIN) continue; + if (g_hash_table_contains(table, GUINT_TO_POINTER(event->guard))) continue; + + struct slept_minute *minute = g_malloc(sizeof(struct slept_minute)); + minute->minute = find_sleepiest_minute(events, event->guard, &minute->count); + g_hash_table_insert(table, GUINT_TO_POINTER(event->guard), minute); + + printf("Guard %u: minute %u, %u times\n", event->guard, minute->minute, minute->count); + } + + // Find the sleepiest of them all + unsigned sleepiest_guard = 0; + struct slept_minute *sleepiest = NULL; + GHashTableIter iter; + gpointer key, value; + g_hash_table_iter_init (&iter, table); + while (g_hash_table_iter_next (&iter, &key, &value)) { + unsigned guard = GPOINTER_TO_UINT(key); + struct slept_minute *minute = value; + + if (sleepiest && sleepiest->count >= minute->count) continue; + sleepiest_guard = guard; + sleepiest = minute; + } + + printf("Sleepiest guard: %u, minute %u, %u times\n", + sleepiest_guard, sleepiest->minute, sleepiest->count); + + printf("Result hash: %u\n", sleepiest_guard * sleepiest->minute); + + g_hash_table_destroy(table); + g_slist_free_full(events, g_free); + return 0; +}