# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
969649 | vjudge1 | Type Printer (IOI08_printer) | C++14 | 78 ms | 5064 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
const int mxN = 25000 + 5;
int n;
string words[mxN];
string base = "";
bool cmp(string a , string b){
int na = a.length() , nb = b.length();
int idx_a = na , idx_b = nb;
for(int i=0;i<na;i++){
if(a[i] != base[i]){
idx_a = i;
break;
}
}
for(int i=0;i<nb;i++){
if(b[i] != base[i]){
idx_b = i;
break;
}
}
if(idx_a==idx_b) return a < b;
return idx_a < idx_b;
}
int main(){
cin>> n;
for(int i=0;i<n;i++){
cin>> words[i];
if(words[i].length() > base.length()) base = words[i];
}
// words[n-1] = base , cnt = len(base)
sort(words, words + n , cmp);
// for(auto word : words) cout<< word << "\n";
string ans = "";
for(auto c : words[0]) ans += c;
ans += 'P';
for(int i=1;i<n;i++){
int idx = min(words[i-1].length() ,words[i].length());
for(int j=0;j<min(words[i-1].length() , words[i].length());j++){
if(words[i-1][j] != words[i][j]){
idx = j;
break;
}
}
for(int j=words[i-1].length()-1;j>=idx;j--) ans += '-';
for(int j=idx;j<words[i].length();j++) ans += words[i][j];
ans += 'P';
}
cout<< ans.length() << "\n";
for(auto c : ans) cout<< c << "\n";
return 0;
}
Compilation message (stderr)
# | 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... |