IDENTIFICATION DIVISION. PROGRAM-ID. day_02. 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 X(4096). WORKING-STORAGE SECTION. 01 ptr PIC 9(4) Value 1. 01 len PIC 9(4). 01 left-val PIC 9(32). 01 right-val PIC 9(32). 01 grouping PIC X(65). 01 val-string PIC Z(32). 01 val-string-len PIC 9(2). 01 val-string-start-idx PIC 9(2). 01 val-string-half PIC 9(2). 01 result PIC 9(32) 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 INSPECT input-line TALLYING len FOR CHARACTERS BEFORE SPACE PERFORM UNTIL ptr > len UNSTRING input-line DELIMITED BY "," INTO grouping WITH POINTER ptr END-UNSTRING UNSTRING grouping DELIMITED BY "-" INTO left-val, right-val END-UNSTRING PERFORM VARYING left-val FROM left-val BY 1 UNTIL left-val > right-val MOVE left-val TO val-string COMPUTE val-string-len = FUNCTION LENGTH(FUNCTION TRIM(val-string)) IF FUNCTION MOD(val-string-len, 2) = 0 COMPUTE val-string-start-idx = (FUNCTION LENGTH(val-string) - val-string-len ) + 1 COMPUTE val-string-half = val-string-len / 2 IF val-string(val-string-start-idx:val-string-half) = val-string(val-string-start-idx + val-string-half:val-string-half) ADD left-val TO result END-IF END-IF END-PERFORM END-PERFORM END-READ END-PERFORM. CLOSE input-file. DISPLAY result. STOP-RUN.