總時間限制: java
1000ms翻譯
內存限制: code
65536kBorm
描述blog
Alex喜歡填詞遊戲。填詞是遊戲是一個很是簡單的遊戲。填詞遊戲包括一個N * M大小的矩形方格盤和P個單詞。玩家須要把每一個方格中填上一個字母使得每一個單詞都能在方格盤上找到。每一個單詞都能找到要知足下面的條件:
每一個方格都不能同時屬於超過一個的單詞。一個長爲k的單詞必定要佔據k個方格。單詞在方格盤中出現的方向只能是豎直的或者水平的。
你的任務是首先在方格盤上找到全部的單詞,固然在棋盤上可能有些方格沒有被單詞佔據。而後把這些沒有用的方格找出來,把這些方格上的字母按照字典序組成一個「神祕單詞」。
若是你還不瞭解規則,咱們能夠具一個例子,好比在下圖中尋找單詞BEG和GEE。遊戲
輸入內存
輸入的第一行包括三個整數N,M和P (2 <= M, N <= 10, 0 <= P <=100)。接下來的N行,每行包括M個字符,來表示方格盤。接下來P行給出須要在方格盤中找到的單詞。
輸入保證填詞遊戲至少有一組答案。
輸入中給出的字母都是大寫字母。io
輸出ast
輸出「神祕單詞」,注意「神祕單詞」中的字母要按照字典序給出。form
樣例輸入
3 3 2 EBG GEE EGE BEG GEE
樣例輸出
EEG
來源
翻譯自Northeastern Europe 2001, Northern Subregion的題目
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int m = scanner.nextInt(); int p = scanner.nextInt(); char[] characters = new char[26]; for (int i = 0; i < n; i++) { String line = scanner.next(); for (int j = 0; j < m; j++) { characters[line.charAt(j) - 'A']++; } } for (int i = 0; i < p; i++) { String word = scanner.next(); for (int j = 0; j < word.length(); j++) { characters[word.charAt(j) - 'A']--; } } for (int i = 0; i < characters.length; i++) { if (characters[i] != 0) { for (int j = 0; j < characters[i]; j++) { System.out.print(String.format("%c", i + 'A')); } } } scanner.close(); } }