From 1ff9a240fe8da8d3811860cb48d4bd55927eb0f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobos=20=C3=81d=C3=A1m?= Date: Sat, 10 Dec 2022 18:50:03 +0100 Subject: [PATCH] Day6 --- day6/input.txt | 1 + day6/marker | Bin 0 -> 16160 bytes day6/marker.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 day6/input.txt create mode 100755 day6/marker create mode 100644 day6/marker.c diff --git a/day6/input.txt b/day6/input.txt new file mode 100644 index 0000000..6359773 --- /dev/null +++ b/day6/input.txt @@ -0,0 +1 @@ +dfsfmfbbbjnbbpddfcfjcjbjwjqqbtbntnhtnncfnfpnffwpphwppvbvtvztzszfzhhnqnvnpppmzmczcmzczbznnbssbhhvghhzqzvzttjvtvcccdhccmvccgdgttghthppwlwqlwwcswspsfsdfddhwwzlwzwttlglttsjjthhgcgfcfhfhtftrffwcfcsfccnntmmpvpgpfgfsgfflgfgmffbmmqsmqmmcqqmjjzczwczzpjzzgtgnnqqvdqvqllbttftgtztcztttlslrslrlfldljlwjjnvjjmrrhdrhhflhffgnfnjffmvmvjjspsvvrcchhgngwwdwbwwfhwffmggbsgspsjsfjjdwwbtbdtbdbgdbbbzhzvhhwpwlwfwfswwrgggmggssfwwdrwrccssjttltrrnggdbggvzzzrfzfwzfffnfnmnnzmnznpzzdtzdttbvvgffmnfmfmbbqppcgpgtgpgggcwwlpplslbslblhlmlfmlmldmmjhjjgllglhlssswcssprrqrjrhrvrffpfnpfnppzgztgtdgtdggftgftggqrgrnnqpnpgnpnggsjsvscsnswshwswfwfwqffcrrmprrrcgrrggmnnmzmwzmwzzgzzhnzzthtggtmmdrmrbmmqwwjswwphhzvvjqjrrvzrrmssdvdlvvlhvvjggbwbrwwjqjqmmfllttvpttdvtdtddrttpltpllzrlrwlrrvcvpcphcccqwwtpwwbmmtntfntftvfvfqvvwnvwwvhhlccvrcrlclcqcvqqsvvfjjqmmfhfvvctczzlhlsslpspfsswnsnzsspzpccmssmpmbpbmmvnvsnvsszttrppvgpgnncllrvlrvllcvlvwvhvghgvvnhvvmffclfccvwcvccrwrhhrffqrqcrqqhbqhqssmzsmzsmmzrztzllmclmmbgmbbrmrgrwrgwrrgngvvtqqpbqpppgbgccsjjcmmtdmdjmmjcchvchhbccnjngjjnwjnnrvnrrsqshshszzqnngbnnrnggvwwlzwwlqwqmqdqrdqqrhqhffpgffqgqdggfjgglfglgvgjvjmjtthghrhvhgvhvnncnwcnwntwntnjjqjwwrdwddsggfddnhnsnvsstbbjddfhddhbddwbwbnbrnnrhrqhqdhdllvbbnzzbmbttpjjngnqqcffrsrnsnnhzzgllgvlvcchfhzzmzrmrggdvgvgqqwnqqpdqqvjjvnvhnhhgvhhgllhlzlclbcccwppztzhhvmvzzzsbzbppvdvdtdtdvdsdlsscnnqhnhgngghrrzprzzpddmvvhcvvprplpnlppscctzthtptspttmftmftfjjdfdjfjrfrfbfcchmhnnbddwzwvvpvrvnnslnlnhlnhlltslttqpqvvgzvzsstcstsrtrbtbbzmmzrzqrzqqnmqnnpjpttwgtgzgqqgmgnnzgzrggpbggvssqvssmhmshmssvlvlmvvnhnhddwbbllffgbffbbztthbhdhdghhrccfmfrfmmbdbfdbffzfgfrfqqptpgpjjlvvbjjdzdbbszslzlldnngwgddbmbpbwwhphnhmhhlthhgfhfvvpmvmhvmvdvsddsjtzvfmpsrwrrzgcvnnllfjmvfptwncppfmgqbfzrdpnfddghsqfmnqfwfslrsgjmqtfqwhdddsbhtbtpswcbfppcbhzfzbsqljzndcsrlhrrtstgfhhfsqqrwgnncsmstdmjvfjhqnrczlftzzzhqdzjdcdqcgfpmbqntdhzcvbtpssrvmgjwzwfvtpsrsrwrvrsjgrmzqzvbttscldsnnwzvmlztnnpdjrwvhshpdwgvhmlrnhtfccjnldlnhtfncfjjjztjmhrdqpvhggtqzwjsvwdzhdmwhsmgzjcwzqzlwbrlzsmlwhpjvflnppvrbgrsblmjpnqvgpjbpwbjgjqzwvjbgcplccjgbfwlblzfjqpwszbqbcnlbmfmqpmgspscgfdgfwnmcdzcqnjznndjcvlblszcnpflbjqltpfzhffdbwbshtpnwwlspltpcrvbdtflwbjrfnvrflqpgqtjzqwmmsdvtsmgjtrtbrzchwhpfsznjqcbrjcvwqgrcsqpvfzhrdlmnvvhjzpgpnlrmqfvcnlrlcfjblfcgvngdjfdczsrtnnwjndsfcsdlhdnbtplfnhsmmbldmsjwcblghhgqwbnjvqbqhddrmrtncvwnchsfpddzgrrtzntmwnmdwlrvnjgnzjqvptztnqnqmcjmmrhmtstgdvhffbbmphnbtsdmpmscsfdbnfnchrhhjpsfhhswfszgqfcbdbgnrqhrflpfgfgdcrjvrwbvsfmzzhvzvqzgshcqzlfcljnlgshdlhwdchhhvwlshwdrgjfbnptqqglbpcfgrmqjhqvlbzdwgnzfzlpcpjzqwhbfjljszvjdsrmfzntgnjflhnwhpfrlbpvgzmbqwzlgphmbvbfdqfgqqbhzzvrjftnwjzhlrqccwcfzvntscnbfcsrqqnvlvhszpgwtrzjrqbtslctbhtbczwtmsgwczncbjmzqvnthpwjmsbsjnfpsmghnvtqjjnjfwtnmlthrlcpqhjpnvnbbnwrdjfshwhpdwmsbngfhbhsqphlqspcgzwrgfjmqqtlsfgnvqtdgnhmdvvqzjwlhsnvjczbssrnlhwdmdthmtprjjfttfzbbswfwsvvslfnbcvprzhtcqwdrzjrnjjctqfsjrsddlhzcnstqfppjlqhvcbjbfwndwdtdfvnlwgvdvhzzrqthdhdmddfdwschmpwwrnlgsldzhgjrlmtzrnrrtqfctvbncpcjlsvnwjvhgnbshhwlqhtjghvrctlvngjgjrlgshhwscrdvzjqtfrrbssvqlcjjdljpmlzfqqnqmffpsbvgcqzqdjwczbqwjgfvpdgjglnqdshppcsqcmszhrbcpnhjnczlhwsbnfnzsczjvmftngqcvhgpgwlzbmjnmmdvdjfrcwnjrncvfstrvvqsstphmqdpwjqhzgppmgwlgjhgfwqgmjrlsvqpfqznvbqzgtngvpbpttzvngjwtrjgdnvdggzlnmpgbzhtnfnrhgwvhnpqdwfdvvftzllpqblgdglclwtwbchlvwcmmvtchlntlghztfvgfjczcbqmzgnqmrjcmqvjmjhfpztjcvclblmrctzfmsdfvfpwdcbsglgrsjqcgtcblhbtgcgjlwhhqnwhdnwzlhvphtvmlfnbfmgpnnbzqtdtzqrbhfljlwstlbscnrsvhrbrcthvzcngrttddcjqhtmsfpsgldgtsgjtprsttlssmrrfjmrddqvnqcfmphbnjtdsqvptrdzqbqfjqtnrqtjgdpbrlzrlvwcbcqbcmncfmwcpdhgpjdrdcmrqnflsqbllrqslmhsljwghnwcjwvhchcnlgppmphbqtcdfzjpcqcgsjzvmgfjgfsvmvjfqvtpffbpmhnnnrjmqhhhrhrqfqdwzdvzssslzvqhngdpszztgrvjntcpzhbfmhbpvcndsjbtnwgpmztpbrtjmfqrsvndrspdqmlsbldgghfflncszhnsttfslvwhvfnsmmhbbvjqslsjfqplndndwmbmvgchgvhzclrcnhvgbgmpctrggvqpvqvgvncmdwhpmwhzwhlgsnlnwggfbbvdvqrrsmhwzrrpgrjfshzgzjpfwjhpqmqhbjlwhwsfszlshpzprvgprlprrvlcrmbttjrpqsrdcdfwdrzbcfjpvrlrjjdwhbspqmrblvtldqdhtjtjphpqswgvqfftdgqrtjgsmthlhvlcqrwlqtthwjgrcpwcnsqtssqzpzqptrwjjdfchfmmsrsccnlvqbdmbcdjmhpgvnnlttfhggfphvbwqtcztbnsflztcfpbcpjbcmsplhjdbsmzhgnmfrhscmwmfqbljvhgllvvgqzphzbswdzlhmpcvnntczrcnqvlphhjdjjjnhfzzcjjsdlfccwvswvjfgvmlnpvjvcbpglsgtpj diff --git a/day6/marker b/day6/marker new file mode 100755 index 0000000000000000000000000000000000000000..213c009f6cc59fa309b6e0b644bc6e708433a84d GIT binary patch literal 16160 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 +#include +#include + +#define WINDOW_SIZE 14 +#define START_OF_PACKET 4 +#define START_OF_MESSAGE 14 + +void shift(char*, char); +int unique(char*, int n); + +int main() { + char buf[WINDOW_SIZE], c; + memset(buf, 0, WINDOW_SIZE); + int charNum = 1, result = 0, result2= 0; + + while ((c = getchar()) != EOF) { + shift(buf, c); + if (charNum > START_OF_PACKET - 1 && !result && unique(buf + (WINDOW_SIZE - START_OF_PACKET), START_OF_PACKET)) { + result = charNum; + } + if (charNum > START_OF_MESSAGE - 1 && !result2 && unique(buf, START_OF_MESSAGE)) { + result2 = charNum; + } + charNum++; + } + + printf("%i\n", result); + printf("%i\n", result2); +} + +void shift(char* buf, char c) { + for (int i = 0; i < WINDOW_SIZE - 1; i++) { + buf[i] = buf[i+1]; + } + buf[WINDOW_SIZE - 1] = c; +} + +int unique(char* buf, int n) { + for(int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { + if (buf[i] == buf[j]) { + return 0; + } + } + } + + return 1; +}