IDENTIFICATION DIVISION. PROGRAM-ID. day_03_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 PIC Z(4096). WORKING-STORAGE SECTION. 01 idx PIC 9(4) VALUE 1. 01 idx-2 PIC 9(4). 01 len PIC 9(4). 01 maxim PIC 9 VALUE 0. 01 digit PIC 9 VALUE 0. 01 remaining PIC 99 VALUE 12. 01 rem-idx PIC 99 VALUE 1. 01 joltage PIC X(12). 01 result PIC 9(32) VALUE 0. 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 LENGTH(FUNCTION TRIM(input-line)) TO len MOVE 1 TO idx MOVE 12 TO remaining MOVE 1 TO rem-idx PERFORM UNTIL remaining < 1 MOVE 0 TO maxim PERFORM VARYING idx FROM idx UNTIL idx > (len - remaining + 1) MOVE FUNCTION NUMVAL(input-line(idx:1)) to digit IF maxim < digit MOVE digit TO maxim MOVE idx TO idx-2 END-IF END-PERFORM MOVE maxim TO joltage(rem-idx:1) ADD 1 TO rem-idx SUBTRACT 1 FROM remaining MOVE idx-2 TO idx ADD 1 TO idx END-PERFORM ADD FUNCTION NUMVAL(joltage) TO result END-READ END-PERFORM. CLOSE input-file. DISPLAY result. STOP-RUN.