#include <bits/stdc++.h>
using namespace std;
#define int long long
#define run ios_base::sync_with_stdio(0);cin.tie(0);
#define F first
#define S second
#define endl '\n'
const int inf = 1e18+7;
const int sz = 1e5+5;
void solve() {
int n;
cin >> n;
vector<string>v;
for(int i = 0;i < n;i++){
string s;
cin >> s;
v.push_back(s);
}
sort(v.begin(),v.end());
int cost = 0;
vector<char>op;
int suf = 0;
int psuf = 0;
for(int i = 0; i < n;i++){
if(i < n-1){
int lm = min((int)(v[i].size()),(int)(v[i+1].size()));
while(suf < lm && v[i][suf] == v[i+1][suf]) suf++;
}
for(int j = psuf;j < v[i].size();j++) op.push_back(v[i][j]);
op.push_back('P');
if(i <n-1) for(int j = suf; j < v[i].size();j++) op.push_back('-');
psuf = suf;
}
cout << op.size() << endl;
for(auto i : op) cout << i << endl;
}
signed main() {
run;
int t = 1;
//cin >> t;
while (t--) {
solve();
}
}
// 11111100000
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |