https://atcoder.jp/contests/abc370/tasks
trival な問題は飛ばしています
(この問題、割と日本語が読みづらかったのは私だけでしょうか。)
問題文通りに実装すればよいが入力の受け取り方が少しだけ面倒。
for(int i=0;i<n;++i){
for(int j=0;j<i+1;++j){
cin >> a[i][j];
}
}
もっと楽な方法があるかも?
0 base-indexed で考えたほうがやりやすいから受け取ったあと a[i][j]--; したほうがいいと思う。
1文字ずつ変えれば必ず $S$ から $T$ にすることは出来るけどそれを辞書順に並べることを考えなければいけない。
indexが0のほうから見て a に近い文字だとより辞書順最小に近づく。
入力例1を見ると
(input)
adbe
bcbc