//求多个字符串中的相同前缀
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main(){
vector<string> vec;
int n;
string temp;
while (cin >> n){
for (int i = 0; i < n; i++){
cin >> temp;
vec.push_back(temp);
}
string str = vec[0];
for (int i = 0; i < vec[0].size(); i++){
for (int j = 1; j < n; j++){
if (vec[j][i] != vec[0][i])
str=str.substr(0, i);
}
}
cout << str << endl;
}
return 0;
}
//求罗马数字转为阿拉伯数字
#include <iostream>
#include <string>
using namespace std;
int graph[400];
int main()
{
graph['I'] = 1;
graph['V'] = 5;
graph['X'] = 10;
graph['L'] = 50;
graph['C'] = 100;
graph['D'] = 500;
graph['M'] = 1000;
// int n; //定义数入的次数
// cin >> n;
string str;
// for (cc = 0; cc<n; cc++)
//{
cin >> str;
//int len=num.size();
int i = 0;
int sum = 0;
int len = str.length();
for (i = 0; i<len; i++)
{
if ((i > 0) && (graph[str[i]] >= graph[str[i - 1]]))
sum = sum + graph[str[i]] - 2 * graph[str[i - 1]];
else {
sum += graph[str[i]];
}
}
cout << sum << endl;
return 0;
}
//阿拉伯数字转为罗马数字
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main(){
const int radix[] = { 1000, 900, 500, 400, 100, 90,
50, 40, 10, 9, 5, 4, 1 };
const string symbol[] = { "M", "CM", "D", "CD", "C", "XC",
"L", "XL", "X", "IX", "V", "IV", "I" };
int num;
int n;
string str;
while (cin >> num){
for (int i = 0; i < 13; i++){
while (num >= radix[i]){
num -= radix[i];
str += symbol[i];
}
}
cout << str << endl;
}
return 0;
}