summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2020-12-04 18:37:07 +0100
committerBond_009 <bond.009@outlook.com>2020-12-04 18:37:07 +0100
commite602cff985169e792ca2f5fe047c4cc8ab5ad040 (patch)
treec9308b54b06a78fe9e530c291b7ec97926b0a72b
parent7465602d9b2f7b23976d0905249fd085f4364300 (diff)
Support benchmarking
-rw-r--r--1/part1.c7
-rw-r--r--1/part2.c7
-rw-r--r--1/part2_fast.c7
-rw-r--r--2/part1.c8
-rw-r--r--2/part2.c8
-rw-r--r--3/part1.c4
-rw-r--r--3/part2.c4
-rw-r--r--4/part1.c4
-rw-r--r--4/part2.c4
-rwxr-xr-xprepare4
-rwxr-xr-xrun3
11 files changed, 42 insertions, 18 deletions
diff --git a/1/part1.c b/1/part1.c
index 62ef852..07f1251 100644
--- a/1/part1.c
+++ b/1/part1.c
@@ -18,9 +18,12 @@ int repair(const int * arr)
return 0;
}
-int main()
+int main(int argc, char *argv[])
{
- FILE *file = fopen("input", "r");
+ FILE *file = fopen(argv[1], "r");
+ if (!file) {
+ return 1;
+ }
char buffer[8] = { 0 };
int input[INPUT_LEN] = { 0 };
diff --git a/1/part2.c b/1/part2.c
index 6efb387..adf487c 100644
--- a/1/part2.c
+++ b/1/part2.c
@@ -20,9 +20,12 @@ int repair(const int *arr)
return 0;
}
-int main()
+int main(int argc, char *argv[])
{
- FILE *file = fopen("input", "r");
+ FILE *file = fopen(argv[1], "r");
+ if (!file) {
+ return 1;
+ }
char buffer[8] = { 0 };
int input[INPUT_LEN] = { 0 };
diff --git a/1/part2_fast.c b/1/part2_fast.c
index 1d9afb1..b38894b 100644
--- a/1/part2_fast.c
+++ b/1/part2_fast.c
@@ -121,9 +121,12 @@ int repair_avx(const int *arr)
return 0;
}
-int main()
+int main(int argc, char *argv[])
{
- FILE *file = fopen("input", "r");
+ FILE *file = fopen(argv[1], "r");
+ if (!file) {
+ return 1;
+ }
char buffer[8] = { 0 };
int input[INPUT_LEN] = { 0 };
diff --git a/2/part1.c b/2/part1.c
index 3d53cba..9a74a2c 100644
--- a/2/part1.c
+++ b/2/part1.c
@@ -20,9 +20,13 @@ bool is_valid_password(char *pass, char *policy)
return occ >= min && occ <= max;
}
-int main()
+int main(int argc, char *argv[])
{
- FILE *file = fopen("input", "r");
+ FILE *file = fopen(argv[1], "r");
+ if (!file) {
+ return 1;
+ }
+
char buffer[128] = { 0 };
int valid = 0;
while (fgets(buffer, 128, file)) {
diff --git a/2/part2.c b/2/part2.c
index b167fcf..c6219a1 100644
--- a/2/part2.c
+++ b/2/part2.c
@@ -13,9 +13,13 @@ bool is_valid_password(char *pass, char *policy)
return (pass[pos1] == c) != (pass[pos2] == c);
}
-int main()
+int main(int argc, char *argv[])
{
- FILE *file = fopen("input", "r");
+ FILE *file = fopen(argv[1], "r");
+ if (!file) {
+ return 1;
+ }
+
char buffer[128] = { 0 };
int valid = 0;
while (fgets(buffer, 128, file)) {
diff --git a/3/part1.c b/3/part1.c
index b6d209a..0373328 100644
--- a/3/part1.c
+++ b/3/part1.c
@@ -31,7 +31,7 @@ int count_trees(const char *filename)
return hit;
}
-int main()
+int main(int argc, char *argv[])
{
- printf("%i", count_trees("input"));
+ printf("%i", count_trees(argv[1]));
}
diff --git a/3/part2.c b/3/part2.c
index 9214c25..7362c12 100644
--- a/3/part2.c
+++ b/3/part2.c
@@ -33,8 +33,8 @@ int count_trees(int inc_right, int inc_down, const char *filename)
return hit;
}
-int main()
+int main(int argc, char *argv[])
{
- long mul = (long)count_trees(1, 1, "input") * count_trees(3, 1, "input") * count_trees(5, 1, "input") * count_trees(7, 1, "input") * count_trees(1, 2, "input");
+ long mul = (long)count_trees(1, 1, argv[1]) * count_trees(3, 1, argv[1]) * count_trees(5, 1, argv[1]) * count_trees(7, 1, argv[1]) * count_trees(1, 2, argv[1]);
printf("%li\n", mul);
}
diff --git a/4/part1.c b/4/part1.c
index 7b53e3c..65c3b99 100644
--- a/4/part1.c
+++ b/4/part1.c
@@ -62,7 +62,7 @@ int count_valid_passports(const char *filename)
return correct;
}
-int main()
+int main(int argc, char *argv[])
{
- printf("%i", count_valid_passports("input"));
+ printf("%i", count_valid_passports(argv[1]));
}
diff --git a/4/part2.c b/4/part2.c
index 73a4560..f132753 100644
--- a/4/part2.c
+++ b/4/part2.c
@@ -129,7 +129,7 @@ int count_valid_passports(const char *filename)
return correct;
}
-int main()
+int main(int argc, char *argv[])
{
- printf("%i", count_valid_passports("input"));
+ printf("%i", count_valid_passports(argv[1]));
}
diff --git a/prepare b/prepare
new file mode 100755
index 0000000..0ec70db
--- /dev/null
+++ b/prepare
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+cd "$1"
+gcc -Wall -pedantic -O3 -march=native -mtune=native -flto -o "part$2" "part$2.c"
diff --git a/run b/run
new file mode 100755
index 0000000..a071f3a
--- /dev/null
+++ b/run
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+./$1/part$2 "$3"