committing everything squashed
This commit is contained in:
1000
01/input.txt
Normal file
1000
01/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
63
01/main.c
Normal file
63
01/main.c
Normal file
@@ -0,0 +1,63 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define MAX_LENGTH 52
|
||||
|
||||
int convert(char* c) {
|
||||
switch (*c) {
|
||||
case 'z':
|
||||
return (c[1] == 'e' && c[2] == 'r' && c[3] == 'o') ? 0 : -1;
|
||||
case 'o':
|
||||
return (c[1] == 'n' && c[2] == 'e') ? 1 : -1;
|
||||
case 't':
|
||||
if (c[1] == 'w' && c[2] == 'o')
|
||||
return 2;
|
||||
else if (c[1] == 'h' && c[2] == 'r' && c[3] == 'e' && c[4] == 'e')
|
||||
return 3;
|
||||
else
|
||||
return -1;
|
||||
case 'f':
|
||||
if (c[1] == 'o' && c[2] == 'u' && c[3] == 'r')
|
||||
return 4;
|
||||
else if (c[1] == 'i' && c[2] == 'v' && c[3] == 'e')
|
||||
return 5;
|
||||
else
|
||||
return -1;
|
||||
case 's':
|
||||
if (c[1] == 'i' && c[2] == 'x')
|
||||
return 6;
|
||||
else if (c[1] == 'e' && c[2] == 'v' && c[3] == 'e' && c[4] == 'n')
|
||||
return 7;
|
||||
else
|
||||
return -1;
|
||||
case 'e':
|
||||
return (c[1] == 'i' && c[2] == 'g' && c[3] == 'h' && c[4] == 't') ? 8 : -1;
|
||||
case 'n':
|
||||
return (c[1] == 'i' && c[2] == 'n' && c[3] == 'e') ? 9 : -1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
int num1, num2, sum, word_num;
|
||||
char buf[MAX_LENGTH];
|
||||
|
||||
num1 = 0;
|
||||
num2 = 0;
|
||||
sum = 0;
|
||||
while (fgets(buf, MAX_LENGTH, stdin)) {
|
||||
for (char* c = buf; *c != '\n'; c++) {
|
||||
if (*c >= '0' && *c <= '9') {
|
||||
num1 = num1 == 0 ? *c - '0' : num1;
|
||||
num2 = *c - '0';
|
||||
} else if ((word_num = convert(c)) >= 0) {
|
||||
num1 = num1 == 0 ? word_num : num1;
|
||||
num2 = word_num;
|
||||
}
|
||||
}
|
||||
sum += num1*10 + num2;
|
||||
num1 = 0;
|
||||
}
|
||||
printf("%d\n", sum);
|
||||
return 0;
|
||||
}
|
||||
|
20
01/main1.c
Normal file
20
01/main1.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void) {
|
||||
int c, num1, num2, sum;
|
||||
num1 = 0;
|
||||
num2 = 0;
|
||||
sum = 0;
|
||||
while ((c = fgetc(stdin)) != EOF) {
|
||||
if (c >= '0' && c <= '9') {
|
||||
num1 = num1 == 0 ? c - '0' : num1;
|
||||
num2 = c - '0';
|
||||
} else if (c == '\n') {
|
||||
sum += num1*10 + num2;
|
||||
num1 = 0;
|
||||
}
|
||||
}
|
||||
printf("%d\n", sum);
|
||||
return 0;
|
||||
}
|
||||
|
12
01/part1.sed
Normal file
12
01/part1.sed
Normal file
@@ -0,0 +1,12 @@
|
||||
s/one/o1e/g
|
||||
s/two/t2o/g
|
||||
s/three/t3e/g
|
||||
s/four/4/g
|
||||
s/five/5e/g
|
||||
s/six/6/g
|
||||
s/seven/7n/g
|
||||
s/eight/e8t/g
|
||||
s/nine/n9e/g
|
||||
s/[^0-9]//g
|
||||
s/^(.).*(.)$/\1\2/g
|
||||
s/^(.)$/\1\1/g
|
7
01/test.txt
Normal file
7
01/test.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
two1nine
|
||||
eightwothree
|
||||
abcone2threexyz
|
||||
xtwone3four
|
||||
4nineeightseven2
|
||||
zoneight234
|
||||
7pqrstsixteen
|
Reference in New Issue
Block a user