单词异或
时间限制:1秒,内存限制:128MB 读入文件名:words.in 输出文件名:words.out
【题目描述】
计算机中对于整数有一种位运算操作,叫做异或,其运算符为“^”。
两个整数进行异或运算,实际是将两个整数的对应二进制位分别进行异或运算,得到结果的每个二进制位,从而得到两个数异或运算的结果。
而每一个二进制位的运算满足如下“同零异一”的规则:
0^0=0
0^1=1
1^0=1
1^1=0
现在我们定义如下小写字母单词异或的运算规则:
首先将小写字母表中的所有字母按顺序排列,规定“a”是字母表中的第0个字母,“b”是字母表中的第1个字母……“z”是字母表中的第25个字母。
在将两个单词进行异或运算时,若两个单词长度不同,首先在较短的单词开头补上“a”字母,直到两单词长度相等。
例如,“oi”和“acm”两个单词进行异或时,首先将“oi”补足成“aoi”,再对“aoi”和“acm”进行单词异或。
然后将这两个单词的每一个位置的字母分别进行异或运算,得到结果单词的每个位置的字母。
字母的异或运算如下定义:
对于两个字符串$A$、$B$以及$A$^$B$得到的字符串$C$,它们的的第$i$个字母:$A_i$^$B_i$=$C_i$,$A_i$和$B_i$在小写字母表中位置的差值即为结果$C_i$在小写字母表中的位置。
例如,“aoi”和“acm”异或的结果是“ame”,因为两个字符串的第一个字母都是“a”,因此在字母表中位置差为0,对应结果中第一个字母就是字母表中的第0个字母“a”;两个字符串第二个字母分别是“o”和“c”,在字母表中的位置差是12,对应结果是“m”;两个字符串第三个字母分别是“i”和“m”,在字母表中的位置差是4,对应结果是“e”。因此结果是“ame”。
现在给出$n$个字符串,求它们依次异或之后的结果。
依次异或,即两个字符串异或后得到的结果字符串再与新的字符串异或。
【输入格式】
输入包含n+1行,第一行输入一个正整数n,表示字符串数量。
接下来n行每行输入一个由小写字母构成的字符串。
【输出格式】
输出共一行,包含一个由小写字母构成的字符串,表示n个字符串异或的结果。
【输入输出样例1】
words.in
2
oi
acm
words.out
ame
【输入输出样例2】
words.in
4
a
ba
bba
bbba
words.out
baba
【数据规模与约定】
对于前20%的数据,$n=2$,$1≤$单个字符串长度$≤10$;
对于前50%的数据,$2≤n≤10$,$1≤$单个字符串长度$≤100$;
对于100%的数据,$2≤n≤100$,$1≤$单个字符串长度$≤100000$,字符串总长度$≤1000000$;