From 7be570c4a6e86fb7060f0bc06910ca57003dfe90 Mon Sep 17 00:00:00 2001 From: Orfeas <38209077+0xfea5@users.noreply.github.com> Date: Sat, 8 Jun 2024 13:50:47 +0300 Subject: Update file names and init.sh --- day6/solution.nim | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 day6/solution.nim (limited to 'day6/solution.nim') diff --git a/day6/solution.nim b/day6/solution.nim deleted file mode 100644 index ce3ccd0..0000000 --- a/day6/solution.nim +++ /dev/null @@ -1,39 +0,0 @@ -import std/strutils -import std/sequtils -import std/tables - -proc solve(message: string, nUniq: int): int = - var cntUniq = initCountTable[char]() - - # init found - var uniq = 0 - for c in message[0 ..< nUniq]: - cntUniq.inc(c) - if cntUniq[c] == 1: - uniq += 1 - - let pairs = zip( - message[0 ..< message.len()-nUniq], - message[nUniq ..< message.len()]) - - for i, pair in pairs: - if uniq == nUniq: - return i+nUniq - - cntUniq.inc(pair[0], -1) - if cntUniq[pair[0]] == 0: - # we lost one uniq number in sequence - uniq -= 1 - - cntUniq.inc(pair[1]) - if cntUniq[pair[1]] == 1: - # we found new uniq number in sequence - uniq += 1 - - assert(false) - return -1 - -let content = readFile("./input.txt").strip() - -echo solve(content, 4) -echo solve(content, 14) -- cgit v1.2.3