Files

47 lines
1.0 KiB
C
Raw Permalink Normal View History

2022-12-09 15:39:27 +01:00
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFER_SIZE 64
#define max(a,b) (a >= b ? a : b)
#define min(a,b) (a <= b ? a : b)
int overlap(int, int, int, int);
int main() {
char buf[BUFFER_SIZE], *p, c;
int min1, max1, min2, max2, overlap_count, sum = 0, sum2 = 0;
memset(buf, 0, BUFFER_SIZE);
p = buf;
while ((c = getchar()) != EOF) {
*p++ = c;
if (c == '\n') {
sscanf(buf, "%i-%i,%i-%i", &min1, &max1, &min2, &max2);
overlap_count = overlap(min1, max1, min2, max2);
if (overlap_count == max1 - min1 + 1 || overlap_count == max2 - min2 + 1) {
sum += 1;
}
if (overlap_count > 0) {
sum2 += 1;
}
memset(buf, 0, BUFFER_SIZE);
p = buf;
}
}
printf("%i\n", sum);
printf("%i\n", sum2);
}
int overlap(int min1, int max1, int min2, int max2) {
if (max1 < min2 || max2 < min1)
return 0;
return min(max1, max2) - max(min1, min2) + 1;
}