2015-01,02
This commit is contained in:
parent
124caba42b
commit
2ec11ae8a5
7
include/advent_math.h
Normal file
7
include/advent_math.h
Normal file
@ -0,0 +1,7 @@
|
||||
#ifndef ADVENT_MATH_H_
|
||||
#define ADVENT_MATH_H_
|
||||
|
||||
int int_max(int, int);
|
||||
int int_min(int, int);
|
||||
|
||||
#endif // ADVENT_MATH_H_
|
@ -1,10 +1,29 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "input.h"
|
||||
|
||||
void advent2015day01(void) {
|
||||
char *input = get_input("input/2015/01");
|
||||
printf("Solution for Day 01 of 2015 is not completed yet\n");
|
||||
char *c = input;
|
||||
int f = 0, b = 0, s = 1;
|
||||
|
||||
while (*c != '\0') {
|
||||
if (*c == '(') {
|
||||
++f;
|
||||
} else {
|
||||
--f;
|
||||
}
|
||||
|
||||
if (f == -1 && b == 0) {
|
||||
b = s;
|
||||
}
|
||||
|
||||
++c;
|
||||
++s;
|
||||
}
|
||||
|
||||
printf("%d\n%d\n", f, b);
|
||||
free(input);
|
||||
}
|
||||
|
@ -1,10 +1,27 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "input.h"
|
||||
#include "advent_math.h"
|
||||
|
||||
void advent2015day02(void) {
|
||||
char *input = get_input("input/2015/02");
|
||||
printf("Solution for Day 02 of 2015 is not completed yet\n");
|
||||
free(input);
|
||||
size_t sz = 0;
|
||||
char **lines = get_lines("input/2015/02", &sz);
|
||||
int paper = 0, ribbon = 0;
|
||||
|
||||
for (size_t i = 0; i < sz; i++) {
|
||||
char *t = strtok(lines[i], "x");
|
||||
int w = atoi(t);
|
||||
t = strtok(NULL, "x");
|
||||
int l = atoi(t);
|
||||
t = strtok(NULL, "x");
|
||||
int h = atoi(t);
|
||||
|
||||
paper += 2*l*w + 2*w*h + 2*h*l + int_min(w*l, int_min(l*h, h*w));
|
||||
ribbon += l*w*h + int_min(w+w+h+h, int_min(h+h+l+l, l+l+w+w));
|
||||
}
|
||||
|
||||
printf("%d\n%d\n", paper, ribbon);
|
||||
del_lines(lines);
|
||||
}
|
||||
|
9
src/advent_math.c
Normal file
9
src/advent_math.c
Normal file
@ -0,0 +1,9 @@
|
||||
#include "advent_math.h"
|
||||
|
||||
int int_max(int a, int b) {
|
||||
return a > b ? a : b;
|
||||
}
|
||||
|
||||
int int_min(int a, int b) {
|
||||
return a < b ? a : b;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user