Southern California Regional of the ACM International Collegiate Programming Contest


Fifth Bank of Swamp County

In response to overwhelming customer complaints, the Fifth Bank of Swamp County has finally decided to produce a listing of cleared checks at the end of each customer's checking account statement. The current statements list only the transaction history, sorted by date, which includes all deposits, withdrawals and fee assessments in addition to cleared checks. The code to generate the current statements was written by programmers with degrees in math; these programmers have for years argued that all ''necessary and sufficient'' information is contained in the transaction history, and any further output is unnecessary and wasteful. In order to minimize the cost of the software change, the bank has laid off the entire programming staff and has chosen instead to outsource the job to part-time student labor as a weekend project.

The cleared check summary will list all checks which cleared the bank during the statement reporting period. The summary will be sorted in ascending order by check number, and will report the dollar amount of the check and date the check cleared. To improve the usefulness of the list, any out-of-sequence check numbers should have an asterisk (*) printed next to them. An out-of-sequence check number is one which, when sorted, does not immediately succeed the previously cleared check number.

The input to the check summary program consists of a check transaction history, sorted in ascending order by date. There will be one input line for each check, consisting of the transaction date in yy/mm/dd format, white space, the check number (an integer between 1 and 9999), white space, and the amount of the check in dollars and cents.

The output should be displayed in three columns, with all checks sorted in column order (see the sample output). Do not print any more rows than necessary, and always fill the middle column before spilling over to the last column. Each column should be separated from the others by three spaces and have the following format:

nnnn* yy/mm/dd

where ''nnnn'' is the check number with leading zeroes suppressed, ''*'' is the optional out-of-sequence indicator (use a space if in sequence), and '''' is the dollar and cent value of the check, with leading zeroes suppressed. If the check is for less than one dollar, print a zero before the decimal point. All checks for $1 million or more require special processing and are not handled through the bank's normal check clearing process; such checks will not appear on these statements. There is no need to paginate the output.

Sample Input

93/10/01 998  .65
93/10/01 999 123.89
93/10/05 996 29.99
93/10/06 993 116.52
93/10/12 995 418.00
93/10/15 1001 15045.00
93/10/27 1000 840.85

Sample Output

 993     116.52 93/10/06    998*      0.65 93/10/01   1001   15045.00 93/10/15
 995*    418.00 93/10/12    999     123.89 93/10/01
 996      29.99 93/10/05   1000     840.85 93/10/27

Copyright © 1995 ACM Southern California Regional Programming Contest