#include using namespace std; int from_mcxi(char s[10]) { int t=0; // 最初の文字から見ていく for(int i=0; s[i]!='\0'; i++){ // 数字だったら掛ける数を求める int kake=1; if(s[i]>='2' && s[i]<='9'){ kake=s[i]-'0'; i++; } //mcxiに応じて計算 switch(s[i]){ case 'm': t+=1000*kake; break; case 'c': t+=100*kake; break; case 'x': t+=10*kake; break; case 'i': t+=kake; break; } } return t; } void to_mcxi(int x) { // 1000の位 int a=x/1000; if(a>0){ if(a>2){ cout << (char)(x/1000+'0'); } cout << "m"; } x%=1000; // 100の位 a=x/100; if(a>0){ if(a>2){ cout << (char)(x/100+'0'); } cout << "c"; } x%=100; // 10の位 a=x/10; if(a>0){ if(a>2){ cout << (char)(x/10+'0'); } cout << "x"; } x%=10; // 1の位 if(x>0){ if(x>1){ cout << (char)(x+'0'); } cout << "i"; } cout << endl; } main() { int n; cin >> n; for(int i=0; i> a >> b; int k=from_mcxi(a)+from_mcxi(b); // 計算して to_mcxi(k); // 答えをmcxiで出力 } return 0; }