5a.c (922B)
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 typedef struct range { 6 long long int lower, upper; 7 } range; 8 9 range ranges[1024]; 10 int rangecount = 0; 11 12 long long int items[1024]; 13 int itemcount = 0; 14 15 void 16 loadranges(FILE *f) { 17 char line[64] = {0}; 18 while (fgets(line, 64, f) && line[0] != '\n') { 19 ranges[rangecount].lower = atoll(line); 20 ranges[rangecount].upper = atoll(strchr(line, '-') + 1); 21 rangecount++; 22 } 23 } 24 25 void 26 loaditems(FILE *f) { 27 char line[64] = {0}; 28 while (fgets(line, 64, f)) { 29 items[itemcount] = atoll(line); 30 itemcount++; 31 } 32 } 33 34 int 35 isfresh(long long int item) { 36 for (int i = 0; i < rangecount; i++) { 37 if (item <= ranges[i].upper && item >= ranges[i].lower) 38 goto fresh; 39 } 40 return 0; 41 42 fresh: 43 return 1; 44 } 45 46 int 47 main() { 48 int fresh = 0; 49 50 loadranges(stdin); 51 loaditems(stdin); 52 53 for (int i = 0; i < itemcount; i++) 54 fresh += isfresh(items[i]); 55 56 printf("%d\n", fresh); 57 58 return 0; 59 }