diff --git a/4/input.txt b/4/input.txt index 54adc99..4cfdc23 100644 --- a/4/input.txt +++ b/4/input.txt @@ -997,4 +997,4 @@ 2-4,3-51 12-51,5-12 18-32,18-33 -29-84,15-83 \ No newline at end of file +29-84,15-83 diff --git a/4/tuer4.c b/4/tuer4.c index a1870ce..d001168 100644 --- a/4/tuer4.c +++ b/4/tuer4.c @@ -1,61 +1,56 @@ #include -#include - -int numarr_to_int(char numarr[2]) { - return (( (numarr[1] - '0') * 10 ) + (numarr[0] - '0')); +int numarr_to_int(char numarr[2], int tpos) { + //printf("- D: %i; %i -\n", numarr[0]-'0', numarr[1]-'0'); //DEBUG + if(tpos==0) { return (numarr[1] - '0'); } + else { return (( (numarr[1] - '0') * 10 ) + (numarr[0] - '0')); } } -int main() { +void clear_num_arr(char numarr[2]) { + numarr[0] = '0'; numarr[1] = '0'; +} + +int main() { //Hi. The input-file has to have an empty line at the end. Sorry. FILE *input_file = fopen("./input.txt", "r");; fseek(input_file, 0, SEEK_END); int if_size = ftell(input_file); fseek(input_file, 0, SEEK_SET); - char input[if_size]; char c[1]; - int val_arr[4]; int pos = 0; char tmp_num[2]; - int tmp_pos = 0; - + int tmp_pos = 1; int fully = 0; + int at_all = 0; do { c[0] = fgetc(input_file); - if((c[0] == (char)-1)) break; - if(c[0] == '-') { - tmp_pos = 0; - val_arr[pos] = numarr_to_int(tmp_num); - //printf("%i; %i; %i; %i\r\n", val_arr[0],val_arr[1],val_arr[2],val_arr[3]); + if(c[0]=='-' || c[0]==',') { + val_arr[pos] = numarr_to_int(tmp_num, tmp_pos); + tmp_pos = 1; + clear_num_arr(tmp_num); pos++; continue; } - if(c[0] == ',') { - tmp_pos = 0; - val_arr[pos] = numarr_to_int(tmp_num); - pos++; - continue; - } - if(c[0] == '\n') { - tmp_pos = 0; + if(c[0]=='\n' || c[0]=='\r') { + val_arr[pos] = numarr_to_int(tmp_num, tmp_pos); + tmp_pos = 1; + clear_num_arr(tmp_num); pos = 0; - - printf("%i; %i; %i; %i\r\n", val_arr[0],val_arr[1],val_arr[2],val_arr[3]); - if(val_arr[0]val_arr[3]) fully++; - + //printf("%i; %i; %i; %i\r\n", val_arr[0], val_arr[1], val_arr[2], val_arr[3]); //DEBUG + if((val_arr[0]>=val_arr[2] && val_arr[1]<=val_arr[3]) || (val_arr[2]>=val_arr[0] && val_arr[3]<=val_arr[1])) fully++; + if((val_arr[1]>=val_arr[2] && val_arr[0]<=val_arr[3]) || (val_arr[3]>=val_arr[0] && val_arr[2]<=val_arr[1])) at_all++; continue; } - + tmp_num[tmp_pos] = c[0]; - tmp_pos++; + tmp_pos--; } while(c[0] != (char)-1); - printf("~UwU Twying c todayw, awwen't we master? *^w^* Hewe is youww wesult: UmU~ : %i\r\n", fully); - + printf("!OwO WHat wAs thAt MAstaww?!?! You wouwd like additioneww infowmatiown?!: UmU~ : %i\r\n", at_all); return 0; -} +} \ No newline at end of file