AT_abc024_d.[ABC024D] 動的計画法

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君使用了一张很大的方格纸,纸上共划分横纵各 10810^8 个小格子,他要完成一个挑战:

「从最左下角开始,每次只能向右或向上移动一格,计算到达每个小格子的方法总数,并将结果对 1,000,000,0071,000,000,007 取余。」

高桥君喜欢动态规划方法,因此很快意识到可以通过下面的算法来解决:

  1. 在最左边的一整列和最下边的一整行的所有格子中填上数字 11。
  2. 对于其他未填数字的格子,如果该格子的左边和下边的格子都已经填了数字,则将这两个格子里的数字相加,并将结果对 1,000,000,0071,000,000,007 取余后填入当前格子。
  3. 重复步骤 2,直到所有格子都填上数字。

通过这个方法,高桥君在方格纸上完成了「从左下角到达每个格子的路径数,对 1,000,000,0071,000,000,007 取余」的计算。

然而,在完成后,由于过于兴奋,他不小心撕掉了一部分方格纸。现在他手中只剩下包含某个格子及其上方和右方这些格子的方格纸碎片。他想将碎片放回原位,但因为方格纸太大,所以找不到正确的位置。

根据碎片上的信息,请帮高桥君找出这块碎片原来在方格纸中的具体位置。

给定的是某个初始位置 (r,c)(r, c) 以及其相邻的两个位置 (r,c+1)(r, c+1) 和 (r+1,c)(r+1, c) 中的整数 AA、BB 和 CC,请找出 rr 和 cc 的值。

注意,最左下角的格子位置是用 (0,0)(0, 0) 表示。

输入格式

输入为以下格式,通过标准输入给出:

$ A $ $ B $ $ C $

  • 第一行给出了 (r,c)(r, c) 位置的整数 AA,满足 0≤A<1,000,000,0070 \leq A < 1,000,000,007。
  • 第二行给出了 (r,c+1)(r, c+1) 位置的整数 BB,满足 0≤B<1,000,000,0070 \leq B < 1,000,000,007。
  • 第三行给出了 (r+1,c)(r+1, c) 位置的整数 CC,满足 0≤C<1,000,000,0070 \leq C < 1,000,000,007。
  • 给定的 AA、BB 和 CC 一定能找到满足 0≤r,c<99,999,9990 \leq r, c < 99,999,999 的解。

输出格式

输出两个整数 rr 和 cc,用空格隔开,表示碎片原来所在的行和列。若有多个可能的解,请输出 rr 最小的组合;若仍有多种可能,则输出其中 cc 最小的。输出末尾应包含一个换行。

输入输出样例

  • 输入#1

    15
    35
    21

    输出#1

    4 2
  • 输入#2

    126
    252
    210

    输出#2

    5 4
  • 输入#3

    144949225
    545897619
    393065978

    输出#3

    314159 365358

说明/提示

样例解释

高桥君手里的碎片如下:

该碎片可能源自下图所示位置:

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页