My yearly advent-of-code solutions
at main 1.5 kB view raw
1 IDENTIFICATION DIVISION. 2 PROGRAM-ID. day_01. 3 AUTHOR. Trey Bastian. 4 ENVIRONMENT DIVISION. 5 INPUT-OUTPUT SECTION. 6 FILE-CONTROL. 7 SELECT input-file ASSIGN TO "./input.txt" 8 ORGANIZATION IS LINE SEQUENTIAL. 9 DATA DIVISION. 10 FILE SECTION. 11 FD input-file. 12 01 input-line. 13 02 direction PIC X. 14 02 move-text PIC XXX. 15 WORKING-STORAGE SECTION. 16 01 dial-position PIC 9(2) VALUE 50. 17 01 move-num PIC S9(3). 18 01 zero-count PIC 9(4) VALUE ZEROS. 19 01 eof PIC X. 20 88 eof-y VALUE "Y". 21 88 eof-n VALUE "N". 22 23 24 PROCEDURE DIVISION. 25 OPEN INPUT input-file. 26 SET eof-n to TRUE. 27 PERFORM UNTIL eof-y 28 READ input-file AT END 29 SET eof-y to TRUE 30 NOT AT END 31 MOVE FUNCTION NUMVAL(move-text) TO move-num 32 IF direction = "L" 33 COMPUTE move-num = 0 - move-num 34 END-IF 35 36 COMPUTE dial-position = FUNCTION MOD(dial-position + 37 move-num, 100) 38 39 if dial-position < 0 40 ADD 100 to dial-position 41 END-IF 42 43 if dial-position = 0 44 ADD 1 to zero-count 45 END-IF 46 END-READ 47 END-PERFORM. 48 CLOSE input-file. 49 DISPLAY zero-count. 50 STOP-RUN. 51