P13062 [GCJ 2020 #2] Incremental House of Pancakes

题目描述

每天早晨,增量煎饼屋的厨房员工会准备好当天所有的煎饼,并将它们分成两堆。初始时,左边的煎饼堆有 $L$ 个煎饼,右边的煎饼堆有 $R$ 个煎饼。 这家餐厅的顾客行为非常一致:第 $i$ 个到达的顾客(从 $1$ 开始计数)总是会点 $i$ 个煎饼。当第 $i$ 个顾客下单 $i$ 个煎饼时,你会从当前煎饼数量较多的那一堆中取出 $i$ 个煎饼(如果两堆煎饼数量相同,则从左边的那一堆中取)。如果两堆煎饼的数量都不足 $i$ 个,餐厅将关闭,且第 $i$ 个顾客不会得到任何煎饼。你**不会**从两堆煎饼中各取一部分来完成一个订单。 给定两堆煎饼的初始数量,你需要计算有多少顾客会被服务,以及餐厅关闭时两堆煎饼的剩余数量。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例占一行,包含两个整数 $L$ 和 $R$,分别表示左边和右边煎饼堆的初始数量,如上所述。

输出格式

对于每个测试用例,输出一行 `Case #x: n l r`,其中 $x$ 是测试用例编号(从 $1$ 开始),$n$ 是被服务的顾客数量,$l$ 和 $r$ 分别是餐厅关闭时左边和右边煎饼堆的剩余数量。

说明/提示

**样例解释** 在样例 #1 中,第一个顾客从右边的煎饼堆中取走 $1$ 个煎饼,剩下每堆各有 $1$ 个煎饼。第二个顾客想要 $2$ 个煎饼,但两堆煎饼都不够,尽管总共有 $2$ 个煎饼。 在样例 #2 中,第一个顾客从左边的煎饼堆中取走 $1$ 个煎饼,因为两堆煎饼数量相同。这样左边剩下 $1$ 个煎饼,右边剩下 $2$ 个煎饼。第二个顾客想要 $2$ 个煎饼,你从右边的煎饼堆中取给他,清空了右边的堆。当第三个顾客到来时,两堆煎饼都不足 $3$ 个,因此不再完成订单。 在样例 #3 中,第一个顾客从右边的煎饼堆中取走 $1$ 个煎饼,左边剩下 $8$ 个煎饼,右边剩下 $10$ 个煎饼。第二个顾客也从右边的煎饼堆中取走 $2$ 个煎饼,此时两堆各有 $8$ 个煎饼。第三个顾客从左边的煎饼堆中取走 $3$ 个煎饼,左边剩下 $5$ 个煎饼,右边剩下 $8$ 个煎饼。第四个顾客从右边的煎饼堆中取走 $4$ 个煎饼,右边剩下 $4$ 个煎饼。第五个顾客取走 $5$ 个煎饼后清空了左边的堆,此时两堆煎饼都不足以满足第六个顾客的需求。 **数据范围** - $1 \leq T \leq 1000$。 **测试集 1(5 分,可见评测结果)** - $1 \leq L \leq 1000$。 - $1 \leq R \leq 1000$。 **测试集 2(14 分,隐藏评测结果)** - $1 \leq L \leq 10^{18}$。 - $1 \leq R \leq 10^{18}$。 翻译由 DeepSeek V3 完成