IDENTIFICATION DIVISION. PROGRAM-ID. day_01_part2. AUTHOR. Trey Bastian. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT input-file ASSIGN TO "./input.txt" ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD input-file. 01 input-line. 02 direction PIC X. 02 move-text PIC XXX. WORKING-STORAGE SECTION. 01 dial-position PIC 9(2) VALUE 50. 01 new-position PIC 9(2). 01 move-num PIC S9(3). 01 zero-count PIC 9(4) VALUE ZEROS. 01 eof PIC X. 88 eof-y VALUE "Y". 88 eof-n VALUE "N". PROCEDURE DIVISION. OPEN INPUT input-file. SET eof-n to TRUE. PERFORM UNTIL eof-y READ input-file AT END SET eof-y to TRUE NOT AT END MOVE FUNCTION NUMVAL(move-text) TO move-num IF move-num > 99 COMPUTE zero-count = zero-count + (move-num / 100) END-IF IF direction = "L" COMPUTE move-num = 0 - move-num END-IF COMPUTE new-position = FUNCTION MOD(dial-position + move-num, 100) if new-position < 0 ADD 100 to new-position END-IF EVALUATE new-position WHEN 0 ADD 1 to zero-count WHEN < dial-position AND direction = "R" AND dial-position <> 0 ADD 1 to zero-count WHEN > dial-position AND direction = "L" AND dial-position <> 0 ADD 1 to zero-count END-EVALUATE MOVE new-position TO dial-position END-READ END-PERFORM. CLOSE input-file. DISPLAY zero-count. STOP-RUN.