IDENTIFICATION DIVISION.
PROGRAM-ID. combination-lock.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 input-str PIC X(20).
01 num-digits PIC 9(3) COMP.
01 code-digits-area.
03 code-digits PIC 9(3) COMP
OCCURS 3 TIMES.
01 rotations PIC 9(5) COMP.
PROCEDURE DIVISION.
ACCEPT input-str
UNSTRING input-str DELIMITED BY SPACES INTO num-digits,
code-digits (1), code-digits (2), code-digits (3)
COMPUTE rotations = num-digits * 3 + code-digits (1)
+ FUNCTION MOD(code-digits (1) - code-digits (2),
num-digits)
IF code-digits (2) = code-digits (3)
ADD num-digits TO rotations
ELSE
COMPUTE rotations = rotations
+ FUNCTION MOD(code-digits (3) - code-digits(2),
num-digits)
END-IF
DISPLAY rotations
.
END PROGRAM combination-lock.
ICAgICAgICBJREVOVElGSUNBVElPTiBESVZJU0lPTi4KICAgICAgICBQUk9HUkFNLUlELiBjb21iaW5hdGlvbi1sb2NrLgogICAgICAgIAogICAgICAgIERBVEEgRElWSVNJT04uCiAgICAgICAgV09SS0lORy1TVE9SQUdFIFNFQ1RJT04uCiAgICAgICAgMDEgIGlucHV0LXN0ciAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJQyBYKDIwKS4KICAgICAgICAKICAgICAgICAwMSAgbnVtLWRpZ2l0cyAgICAgICAgICAgICAgICAgICAgICAgICAgUElDIDkoMykgQ09NUC4KICAgICAgICAKICAgICAgICAwMSAgY29kZS1kaWdpdHMtYXJlYS4KICAgICAgICAgICAgMDMgIGNvZGUtZGlnaXRzICAgICAgICAgICAgICAgICAgICAgUElDIDkoMykgQ09NUAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ0NVUlMgMyBUSU1FUy4KICAgICAgICAKICAgICAgICAwMSAgcm90YXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgUElDIDkoNSkgQ09NUC4KICAgICAgICAgICAgCiAgICAgICAgUFJPQ0VEVVJFIERJVklTSU9OLgogICAgICAgICAgICBBQ0NFUFQgaW5wdXQtc3RyCiAgICAgICAgICAgIFVOU1RSSU5HIGlucHV0LXN0ciBERUxJTUlURUQgQlkgU1BBQ0VTIElOVE8gbnVtLWRpZ2l0cywKICAgICAgICAgICAgICAgIGNvZGUtZGlnaXRzICgxKSwgY29kZS1kaWdpdHMgKDIpLCBjb2RlLWRpZ2l0cyAoMykKICAgICAgICAKICAgICAgICAgICAgQ09NUFVURSByb3RhdGlvbnMgPSBudW0tZGlnaXRzICogMyArIGNvZGUtZGlnaXRzICgxKQogICAgICAgICAgICAgICAgKyBGVU5DVElPTiBNT0QoY29kZS1kaWdpdHMgKDEpIC0gY29kZS1kaWdpdHMgKDIpLAogICAgICAgICAgICAgICAgICAgIG51bS1kaWdpdHMpCiAgICAgICAgICAgIElGIGNvZGUtZGlnaXRzICgyKSA9IGNvZGUtZGlnaXRzICgzKQogICAgICAgICAgICAgICAgQUREIG51bS1kaWdpdHMgVE8gcm90YXRpb25zCiAgICAgICAgICAgIEVMU0UKICAgICAgICAgICAgICAgIENPTVBVVEUgcm90YXRpb25zID0gcm90YXRpb25zCiAgICAgICAgICAgICAgICAgICAgKyBGVU5DVElPTiBNT0QoY29kZS1kaWdpdHMgKDMpIC0gY29kZS1kaWdpdHMoMiksCiAgICAgICAgICAgICAgICAgICAgICAgIG51bS1kaWdpdHMpCiAgICAgICAgICAgIEVORC1JRgogICAgICAgIAogICAgICAgICAgICBESVNQTEFZIHJvdGF0aW9ucwogICAgICAgICAgICAuCiAgICAgICAgRU5EIFBST0dSQU0gY29tYmluYXRpb24tbG9jay4=