#P13062. [GCJ 2020 #2] Incremental House of Pancakes

[GCJ 2020 #2] Incremental House of Pancakes

Description

每天早晨,增量煎饼屋的厨房员工会准备好当天所有的煎饼,并将它们分成两堆。初始时,左边的煎饼堆有 LL 个煎饼,右边的煎饼堆有 RR 个煎饼。

这家餐厅的顾客行为非常一致:第 ii 个到达的顾客(从 11 开始计数)总是会点 ii 个煎饼。当第 ii 个顾客下单 ii 个煎饼时,你会从当前煎饼数量较多的那一堆中取出 ii 个煎饼(如果两堆煎饼数量相同,则从左边的那一堆中取)。如果两堆煎饼的数量都不足 ii 个,餐厅将关闭,且第 ii 个顾客不会得到任何煎饼。你不会从两堆煎饼中各取一部分来完成一个订单。

给定两堆煎饼的初始数量,你需要计算有多少顾客会被服务,以及餐厅关闭时两堆煎饼的剩余数量。

Input Format

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

Output Format

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

3
1 2
2 2
8 11
Case #1: 1 1 1
Case #2: 2 1 0
Case #3: 5 0 4

Hint

样例解释

在样例 #1 中,第一个顾客从右边的煎饼堆中取走 11 个煎饼,剩下每堆各有 11 个煎饼。第二个顾客想要 22 个煎饼,但两堆煎饼都不够,尽管总共有 22 个煎饼。

在样例 #2 中,第一个顾客从左边的煎饼堆中取走 11 个煎饼,因为两堆煎饼数量相同。这样左边剩下 11 个煎饼,右边剩下 22 个煎饼。第二个顾客想要 22 个煎饼,你从右边的煎饼堆中取给他,清空了右边的堆。当第三个顾客到来时,两堆煎饼都不足 33 个,因此不再完成订单。

在样例 #3 中,第一个顾客从右边的煎饼堆中取走 11 个煎饼,左边剩下 88 个煎饼,右边剩下 1010 个煎饼。第二个顾客也从右边的煎饼堆中取走 22 个煎饼,此时两堆各有 88 个煎饼。第三个顾客从左边的煎饼堆中取走 33 个煎饼,左边剩下 55 个煎饼,右边剩下 88 个煎饼。第四个顾客从右边的煎饼堆中取走 44 个煎饼,右边剩下 44 个煎饼。第五个顾客取走 55 个煎饼后清空了左边的堆,此时两堆煎饼都不足以满足第六个顾客的需求。

数据范围

  • 1T10001 \leq T \leq 1000

测试集 1(5 分,可见评测结果)

  • 1L10001 \leq L \leq 1000
  • 1R10001 \leq R \leq 1000

测试集 2(14 分,隐藏评测结果)

  • 1L10181 \leq L \leq 10^{18}
  • 1R10181 \leq R \leq 10^{18}

翻译由 DeepSeek V3 完成