#10568. 密钥

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Turing001

题目描述

随着信息化和数字化社会的发展,人们对信息安全的重要性认识不断提高,网络信息安全越来越受到重视。

其实在网络中相互传递的各种数据,大部分都是经过加密算法处理过的。数据加密的过程:密文 = (明文 + 密钥)经过 加密算法 处理得来的。

蒜头君和花椰妹最近正在学习加密算法,花椰妹刚刚想到一个小写英文字母的加密算法,形式为:y = (ax + b) % 26 + 'a'。

其中:

x = c - 'a',c 为未加密的小写英文字母(也就是明文);

y 为加密后的小写英文字母(也就是密文);

a, b (1≤a,b≤1000) 为正整数(密钥)。

例如:

a=1, b=1 时,若明文中一个字母 c = 'b',则 x = c - 'a' = 'b' - 'a' = 1,所以 y = (1 * 1 + 1) % 26 + 'a' = 'c'。则 c = 'b' 经过加密后得到的密文为 'c'。

现在花椰妹告诉蒜头君每一个小写字母对应的密文信息,想要让蒜头君求出密钥 a, b。

a, b 可能有多种组合答案,答案优先保证 a 最小,然后保证 b 最小。

假设(不保证 a_i,b_i 为合法组合,只是为说明 a,b 的优先级): a_1 = 1, b_1 = 4 a_2 = 2, b_2 = 3 ,此时的正确答案为 a = 1, b = 4。

输入格式

输入共一行一个长度为 26 的小写英文字符串,第 i(0≤i≤25) 个字母代表字母 c = i + 'a' 的密文信息,其中 'a' 为小写字母a。

输出格式

输出共一行,两个以空格隔开的正整数 a, b。

a, b 可能有多种组合答案,答案优先保证 a 最小,然后保证 b 最小。

数据保证题目一对定有解,且 1≤a,b≤1000

样例

样例输入

bcdefghijklmnopqrstuvwxyza

样例输出

1 1

样例解释

a = 1, b = 1 时,可以通过 y = (ax + b) % 26 + 'a' 计算出密文信息。

c→y 表示 c 是明文信息,y 是密文信息(输入信息),x = c-'a'。

a→b
b→c
c→d
d→e
e→f
f→g
g→h
h→i
i→j
j→k
k→l
l→m
m→n
n→o
o→p
p→q
q→r
r→s
s→t
t→u
u→v
v→w
w→x
x→y
y→z
z→a