SP10425 SECSYS - Security System
题目描述
Jose 是一个富有的收藏家,喜欢收集珍贵的物品。虽然他的财物大多存放在可靠的银行里,但他偶尔会在家展示一些值钱的东西给亲友看。为了确保这些物品的安全,Jose 在家里设立了一套安全制度,以迷惑任何试图盗取他藏品的人。
Jose 的家里有 **C** 个保险箱,每个都有一个数字密码,其中一个保险箱里藏着珍贵的物品。Jose 为这个保险箱设置了一个六位数的密码。保险箱的安全系统会将这六位密码的数字相加,并在显示框上显示出结果。Jose 基于这个结果设计系统:如果有人想找到存放物品的保险箱,他们必须尝试从初始保险箱开始,根据余数来决定下一步去哪个保险箱。
具体来说,显示的结果值对 **C** 取余决定下一个要访问的保险箱编号。此外,系统中的其余 **C-1** 个保险箱有两个系数 **A** 和 **B**,用来构造一个线性方程 **Y = AX + B**。这里,输入的数字 **X** 应为显示框上的数字,而计算出的 **Y** 对 **C** 取余将指出下一个要“访问”的保险箱编号。
从第一个保险箱开始,只有按序访问的保险箱才会正确打开。因此,任何想找到物品的人必须按顺序并使用正确的密码访问保险箱。
由于保险箱的系数不断地被系统更改,Jose 不想每次都得重复这个探查过程。因此,他的任务是编写一个程序。该程序通过已知的保险箱数、第一个保险箱的编号、保险箱之间的系数关系还有其初始密码,来自动找出珍贵物品究竟藏在哪个保险箱里以及该如何打开它。
输入格式
输入由若干组测试数据组成。每组测试数据有以下内容:第一行包含三个用空格分隔的整数 **C**、**P** 和 **I**,分别表示保险箱的总数、第一个保险箱的编号,以及中间环节的保险箱数量(不包括第一个和最后一个)。满足条件:3 ≤ **C** ≤ 10,0 < **I** < **C** - 2。接下来的 **C** 行中,每行含两个用空格隔开的整数,代表一个保险箱的系数 **A** 和 **B**,编号从 0 到 **C-1**。假设 0 ≤ **A**, **B** ≤ 100。最后一行包含一个六位数字的字符串,表示第 **P** 号保险箱的密码组合。
输入文件的最后一行由三个零组成,分别用空格分隔。
输出格式
对于每组测试数据,程序应输出一个结果行,包含两个用空格分隔的值:存放物品的保险箱编号和将其打开所需的最终密码组合。
**本翻译由 AI 自动生成**