MIPS | Malaysian Informatics And Programming Society

Word Distance

Problem Statement

You are given NN words. Each word is a string of length MM consisting only of lowercase letters.

The distance between 2 words is defined as the minimum number of letters that need to be replaced in either word so that the two words become anagrams1 of each other.

You are given a task to construct a word of length MM that minimizes the sum of distances to all NN given words. If there are multiple such words, output the lexicographically smallest2 one.

Note:

1 A word is an anagram of another if it can be formed by rearranging the letters of the other word. For example, `baab` is an anagram of `aabb`, but not of `baaa` because `aabb` can be rearranged into `baab` by swapping the first and third letter, but there is no rearrangement of `baaa` that forms `baab`.

2 A string s1s_1 is lexicographically smaller than a string s2s_2 of the same length if and only if in the first position where s1s_1 and s2s_2 differ, the string s1s_1 has a letter that appears earlier in the alphabet than the corresponding letter in s2s_2. For example, `aabc` is lexicographically smaller than `abaa` because the first position where both strings differ is the second position and letter `a` appears earlier in alphabet than letter `b`.

Input Format

The first line contains two space-separated integers, NN and MM.

Each of the next NN lines contains a string of length MM.

Output Format

Output the lexicographically smallest word of length MM with the minimum sum of distance to all the words.

Constraints

For all tasks:

Sample Input

5 3
adb
dez
zaf
aed
wxy

Sample Output

ade

Sample Explanation

The distance of the word ade to each of the given words is 1, 1, 2, 0 and 3, respectively, as shown.

The total distance is 1+1+2+0+3=71 + 1 + 2 + 0 + 3 = 7 and it can be proven that this is the minimum possible sum of distance. Do note that aed and adz are also words with a minimum sum of distance to all the given words. However, they are NOT the answer to this problem because


Jarak Perkataan

Pernyataan Masalah

Anda diberikan NN perkataan. Setiap perkataan ialah rentetan (string) sepanjang MM yang hanya terdiri daripada huruf kecil.

Jarak antara dua perkataan ditakrifkan sebagai bilangan huruf minimum yang perlu digantikan dalam salah satu perkataan supaya kedua-duanya menjadi anagram1 antara satu sama lain.

Tugas anda ialah untuk membina satu perkataan sepanjang MM yang meminimumkan jumlah jarak kepada semua NN perkataan yang diberikan. Jika terdapat lebih daripada satu perkataan yang mempunyai jumlah jarak minimum, keluarkan perkataan yang terkecil dari segi leksikografi2.

Nota:

1 Sebuah perkataan ialah anagram kepada perkataan lain jika ia boleh dibentuk dengan menyusun semula huruf-huruf perkataan tersebut. Contohnya, `baab` ialah anagram kepada `aabb`, tetapi bukan kepada `baaa` kerana `aabb` boleh disusun semula kepada `baab` dengan menukarkan huruf pertama dan ketiga, tetapi tiada susunan semula untuk `baaa` yang membentuk `baab`.

2 Rentetan s1s_1 dikatakan lebih kecil secara leksikografi daripada s2s_2 (yang sama panjang) jika dan hanya jika pada kedudukan pertama yang s1s_1 dan s2s_2 berbeza, rentetan s1s_1 mempunyai huruf yang muncul lebih awal dalam susunan abjad berbanding huruf pada kedudukan yang sama dalam s2s_2. Contohnya, `aabc` ialah lebih kecil secara leksikografi daripada `abaa` kerana posisi pertama yang kedua-dua rentetan berbeza ialah posisi kedua dan huruf `a` muncul lebih awal dalam sususan abjad daripada huruf `b`.

Format Input

Baris pertama mengandungi dua integer yang dipisahkan oleh ruang, NN dan MM.

Setiap satu daripada NN baris seterusnya mengandungi satu rentetan sepanjang MM.

Format Output

Keluarkan satu perkataan sepanjang MM yang mempunyai jumlah jarak minimum terhadap semua perkataan yang diberikan, dan juga merupakan yang terkecil secara leksikografi antara semua pilihan yang mungkin.

Kekangan

Untuk semua tugasan:

Contoh Input

5 3
adb
dez
zaf
aed
wxy

Contoh Output

ade

Penjelasan Contoh

Jarak antara perkataan ‘ade’ dan setiap perkataan yang diberikan adalah masing-masing 1, 1, 2, 0, dan 3 seperti berikut:

Jumlah jarak ialah 1 + 1 + 2 + 0 + 3 = 7, dan boleh dibuktikan yang ini merupakan jumlah minimum yang mungkin. Perkataan aed dan adz juga mempunyai jumlah jarak minimum yang sama kepada kesemua perkataan yang diberikan. Tetapi mereka BUKAN jawapan akhir kerana:


单词距离

题目描述

给定 NN 个单词。每个词都是由 MM 个小写英文字幕组成的字符串。

定义两个词的距离为使两个单词变为互为变位词1(anagram)所需替换的最少字母数。

你的任务是构造一个长度为 MM 的单词且与所有 NN 个给定的词的距离的和是最小的。如果有多个符合条件的单词,输出字典序2 最小的那个。

注意:

1 若一个单词可以通过重新排列另一个单词中的字母得到,则称这两个单词互为变位词(anagram)。例如,`baab` 是 `aabb` 的变位词,但不是 `baaa` 的变位词,因为 `aabb` 通过交换第一个和第三个字母即可得到 `baab`,而无论如何重新排列 `baaa` 都无法得到 `baab`。

2 若两个等长字符串 s1s_1s2s_2 在第一个不同的位置上,s1s_1​ 的该位置字母在字母表中比 s2s_2​ 的对应字母更靠前,则称 s1s_1​ 字典序小于 s2s_2​。例如,`aabc` 的字典序小于 `abaa`,因为它们第一个不同的位置是第二个字符,而字母 `a` 在字母表中比 `b` 更靠前。

输入格式

第一行含有两个整数 NNMM

接下来的 NN 行含有一个长度为 MM 的字符串。

输出格式

输出一个长度为 MM 的字符串表示符合距离总和最小的字典序最小的单词。

约束

对于每项任务:

样例输入

5 3
adb
dez
zaf
aed
wxy

样例输出

ade

样例解释

ade 和其他词的距离分别是 1、1、2、0和3,如下:

距离的总和是 1+1+2+0+3=71 + 1 + 2 + 0 + 3 = 7 并且可以证明,这样得到的距离和是最小的。注意 aedadz 也是最小总距离的单词但是它们不是答案因为