using System;
using System.Collections.Generic;
public class Test
{
static string Common(List<string> strs)
{
if (strs == null || strs.Count == 0)
return "";
if (strs.Count == 1)
return strs[0];
for (int i = 0; i < strs[0].Length; ++i)
for (int q = 1; q < strs.Count; ++q)
if (strs[q].Length == i)
return strs[q];
else if (strs[q][i] != strs[q-1][i])
return strs[q].Substring(0, i);
return strs[0];
}
public static void Main()
{
Console.WriteLine("{1}: {0}", Common(new List<string>()), "");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "a" }), "a");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "a", "a" }), "a");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "a", "ab" }), "a");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "ab", "a" }), "a");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "ab", "cd" }), "");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "ab", "cd", "" }), "");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "ab", "ab" }), "ab");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "ab", "ab", "" }), "");
Console.WriteLine("{1}: {0}", Common(new List<string>() { "abacaba", "aba", "abacaba" }), "aba");
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXN0YXRpYyBzdHJpbmcgQ29tbW9uKExpc3Q8c3RyaW5nPiBzdHJzKQoJewoJCWlmIChzdHJzID09IG51bGwgfHwgc3Rycy5Db3VudCA9PSAwKQoJCQlyZXR1cm4gIiI7CgoJCWlmIChzdHJzLkNvdW50ID09IDEpCgkJCXJldHVybiBzdHJzWzBdOwoJCQkKCQlmb3IgKGludCBpID0gMDsgaSA8IHN0cnNbMF0uTGVuZ3RoOyArK2kpCgkJCWZvciAoaW50IHEgPSAxOyBxIDwgc3Rycy5Db3VudDsgKytxKQoJCQkJaWYgKHN0cnNbcV0uTGVuZ3RoID09IGkpCgkJCQkJcmV0dXJuIHN0cnNbcV07CgkJCQllbHNlIGlmIChzdHJzW3FdW2ldICE9IHN0cnNbcS0xXVtpXSkKCQkJCQlyZXR1cm4gc3Ryc1txXS5TdWJzdHJpbmcoMCwgaSk7CgkJCQkJCgkJcmV0dXJuIHN0cnNbMF07Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlDb25zb2xlLldyaXRlTGluZSgiezF9OiB7MH0iLCBDb21tb24obmV3IExpc3Q8c3RyaW5nPigpKSwgIiIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJ7MX06IHswfSIsIENvbW1vbihuZXcgTGlzdDxzdHJpbmc+KCkgeyAiYSIgfSksICJhIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoInsxfTogezB9IiwgQ29tbW9uKG5ldyBMaXN0PHN0cmluZz4oKSB7ICJhIiwgImEiIH0pLCAiYSIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJ7MX06IHswfSIsIENvbW1vbihuZXcgTGlzdDxzdHJpbmc+KCkgeyAiYSIsICJhYiIgfSksICJhIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoInsxfTogezB9IiwgQ29tbW9uKG5ldyBMaXN0PHN0cmluZz4oKSB7ICJhYiIsICJhIiB9KSwgImEiKTsKCQlDb25zb2xlLldyaXRlTGluZSgiezF9OiB7MH0iLCBDb21tb24obmV3IExpc3Q8c3RyaW5nPigpIHsgImFiIiwgImNkIiB9KSwgIiIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJ7MX06IHswfSIsIENvbW1vbihuZXcgTGlzdDxzdHJpbmc+KCkgeyAiYWIiLCAiY2QiLCAiIiB9KSwgIiIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJ7MX06IHswfSIsIENvbW1vbihuZXcgTGlzdDxzdHJpbmc+KCkgeyAiYWIiLCAiYWIiIH0pLCAiYWIiKTsKCQlDb25zb2xlLldyaXRlTGluZSgiezF9OiB7MH0iLCBDb21tb24obmV3IExpc3Q8c3RyaW5nPigpIHsgImFiIiwgImFiIiwgIiIgfSksICIiKTsKCQlDb25zb2xlLldyaXRlTGluZSgiezF9OiB7MH0iLCBDb21tb24obmV3IExpc3Q8c3RyaW5nPigpIHsgImFiYWNhYmEiLCAiYWJhIiwgImFiYWNhYmEiIH0pLCAiYWJhIik7Cgl9Cn0=