📄 3206585_tle.java
字号:
import java.util.*;
import java.math.*;
public class Main
{
int n, k;
int [] num;
String [] str;
String [] al;
public static void main(String [] args)
{
new Main().run();
}
public void run()
{
int i, j;
String a, b;
Scanner cin = new Scanner (System.in);
n = cin.nextInt();
k = cin.nextInt();
str = new String [k+1];
al = new String [n+1];
num = new int [n+1];
for(i = 0; i < k; i++)
{
str[i] = cin.next();
}
for(i = 0; i < n; i++)
{
boolean [] used = new boolean [27];
for(j = 0; j < k; j++)
{
if(!used[str[j].charAt(i)-'a'])
{
used[str[j].charAt(i)-'a'] = true;
num[i]++;
}
}
al[i] = "";
for(j = 0; j < 26; j++)
{
if(!used[j])
{
al[i] += (char)(j+'a');
}
}
num[i] = 26-num[i];
}
a = cin.next();b = cin.next();
int [] ida = new int [n+1];
int [] idb = new int [n+1];
int [] id = new int [n+1];
getId(a,ida);
getId(b,idb);
add(idb,ida,id);
System.out.println(find(id));
}
private void add(int [] a,int [] b, int c[])
{
int carry;
carry = 0;
for(int i = n-1; i >= 0; i--)
{
c[i] = a[i]+b[i]+carry;
if(c[i] >= num[i])
{
c[i] %= num[i];
carry = 1;
}
else
carry = 0;
}
}
private String find(int [] id)
{
String ret;
ret = "";
for(int i = 0; i < n; i++)
{
ret += al[i].charAt(id[i]);
}
return ret;
}
private void getId(String s,int [] array)
{
for(int i = 0; i < n; i++)
{
array[i] = al[i].indexOf(s.charAt(i));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -