#include <bits/stdc++.h>
using namespace std;
map <char, string> tra;
bool check(char a, char b) {
    if (tra[a][0] == tra[b][0]) return true;
    
    return false;
}
    
int main() {
    tra['a'] = "2";
    tra['b'] = "22";
    tra['c'] = "222";
    tra['d'] = "3";
    tra['e'] = "33";
    tra['f'] = "333";
    tra['g'] = "4";
    tra['h'] = "44";
    tra['i'] = "444";
    tra['j'] = "5";
    tra['k'] = "55";
    tra['l'] = "555";
    tra['m'] = "6";
    tra['n'] = "66";
    tra['o'] = "666";
    tra['p'] = "7";
    tra['q'] = "77";
    tra['r'] = "777";
    tra['s'] = "7777";
    tra['t'] = "8";
    tra['u'] = "88";
    tra['v'] = "888";
    tra['w'] = "9";
    tra['x'] = "99";
    tra['y'] = "999";
    tra['z'] = "9999";
	vector <char> beh(10);
	for (int i = 0; i < 9; i++) {
		char x;
		cin >> x;
		beh[x-'0']=i+1+'0';
	}
	
	string s, s2 = "";
	cin >> s;
	
	s2 = tra[s[0]];
	
	for (int i = 1; i < s.size(); i++) {
	    if (check(s[i], s[i-1])) s2 += '#';
	    
	    s2 += tra[s[i]];
	}
	
	for (int i = 0; i < s2.size(); i++) if (s2[i] != '#') s2[i] = beh[s2[i] -'0'];
	
	cout << s2 << endl;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |