#P2077. Balanced Budget Initiative
Balanced Budget Initiative
描述
上个月你跳了张支票后,你感到必须改善自己的财务管理。银行开始为你提供在线对账单,你认为这是一个机会,可以通过确保你有足够的钱来支付你开的支票,从而管理好你的账户。
银行提供的月度对账单列出了你的起始余额、每笔交易和最终余额。你的任务是将对账单与同一时间段内的支票簿登记记录进行比较。你需要识别出仅出现在对账单或登记记录中的交易,登记记录中金额错误的情况(自然银行的对账单总是正确的),以及登记记录中的计算错误。
输入
银行对账单首先出现。它以如下形式的行开始和结束:
< > 第一行表示起始余额,第二行表示最终余额。 在余额之间是交易列表,每行一个交易,形式为:
{|} < > < > 其中, 是整数支票或存款编号(同一支票或存款编号只会出现一次,但同一编号可以同时用于支票和存款), 是交易金额。
在最终余额之后是登记记录。登记记录的第一行是起始余额:
< > 接下来是成对的行,下一笔交易后跟着你手工计算后的余额:
{ | } < > < > < > 成对的行重复直到输入文件结束。
所有输入数字和中间值的 || < 。所有金额精确到分()。
输出
为了便于纠正你的登记记录,每笔交易的输出按其在登记记录中出现的顺序排列。每个登记记录条目对应输出中的一行。
如果登记记录条目完全正确,即在对账单中找到相同金额的交易,登记记录中的计算正确,并且它不是之前登记记录中重复的交易,则输出:
{|} < > 如果不完全正确,则输出以交易类型和编号开头的一行,后跟一个或多个错误(按以下顺序,用空格分隔):
:交易类型和编号未出现在对账单中。
:该交易在登记记录中已出现过。
:登记记录中的金额与对账单中的金额不同。
:计算使用了正确的值(即对账单中的金额),尽管登记记录中实际记录的金额不正确。只有在 也出现时才显示。
:交易后的登记余额既不匹配对账单中的金额,也不匹配登记记录中的交易金额(如果与对账单金额不同)。
在登记记录的最后一个条目之后,输出所有未出现在登记记录中的交易,按升序排列( < , < < ...),每行一个:
{|} < >
输入数据 1
balance 1000.00
check 100 10.00
check 101 20.00
check 102 30.00
check 103 100.00
deposit 1 10.00
deposit 2 20.00
deposit 3 30.00
deposit 4 500.00
balance 1400.00
1000.00
check 100 10.00
990.00
deposit 2 25.00
1015.00
check 101 20.00
990.00
check 102 30.00
960.00
check 101 21.00
940.00
check 103 100.00
840.00
deposit 3 30.00
870.00
deposit 4 500.00
1370.00
输出数据 1
check 100 is correct
deposit 2 incorrect amount
check 101 math mistake
check 102 is correct
check 101 repeated transaction incorrect amount math uses correct value
check 103 is correct
deposit 3 is correct
deposit 4 is correct
missed deposit 1