From e1fe054f63ce192e7dc7a522d79cea965afde71c Mon Sep 17 00:00:00 2001 From: laura Date: Wed, 10 Dec 2025 18:06:55 +0100 Subject: [PATCH] solved 3 in sufficiently short runtime --- 3/Makefile | 13 ++++++++++++ 3/main.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 3/Makefile create mode 100644 3/main.c diff --git a/3/Makefile b/3/Makefile new file mode 100644 index 0000000..ba44bd3 --- /dev/null +++ b/3/Makefile @@ -0,0 +1,13 @@ +client: main.c + gcc -o main main.c -O3 -Wall -Wextra -g -march=x86-64-v3 + +client-debug: main.c + gcc -o main main.c -O1 -Wall -Wextra -g -fsanitize=address + +client-debug-nosanitize: main.c + gcc -o main main.c -O1 -Wall -Wextra -g + +clean: + rm main + +.PHONY: clean \ No newline at end of file diff --git a/3/main.c b/3/main.c new file mode 100644 index 0000000..4918793 --- /dev/null +++ b/3/main.c @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +char input[] = +{ +#embed "input.txt" +,'\0' // null terminator +}; + +int width = 0; +int height = 0; + +int main(int argc, char *argv[]){ + clock_t start, end; + start = clock(); + + while(input[width] != '\n'){ + width++; + } + //printf("width: %d\n", width); + + while(input[height*(width+1)+1] != 0){ + height++; + } + int count = 0; + for(int i = 0; i < height; i++){ + int biggest = input[i*(width+1)]; + int second_biggest = input[i*(width+1)+1]; + for(int o = 0; o < width-1; o++){ + + int num = input[i*(width+1)+o]; + if(num>biggest){ + biggest = num; + second_biggest = input[i*(width+1)+o+1]; + }else if(second_biggest < input[i*(width+1)+o+1]){ + second_biggest = input[i*(width+1)+o+1]; + } + } + count += (biggest-0x30)*10 + (second_biggest-0x30); + for(int i = 0; i<12; i++){ + + } + //printf(input); + //printf("count: %d\n", count); + } + + end = clock(); + printf("count: %d\n", count); + clock_t ticks_taken = end - start; + double time_taken = ((double)ticks_taken)/CLOCKS_PER_SEC; + printf("time take: %f ticks\n", time_taken); + printf("CLOCKS_PER_SEC: %ld\n", CLOCKS_PER_SEC); + + + exit(1); +} \ No newline at end of file