Submission #1203402

#TimeUsernameProblemLanguageResultExecution timeMemory
1203402HappyCapybaraType Printer (IOI08_printer)C++20
100 / 100
580 ms4788 KiB
#include<bits/stdc++.h>
using namespace std;

string ls = "";

bool comp(string a, string b){
    int x = 0;
    while (true){
        if (x == a.size()) return 1;
        if (x == b.size()) return 0;
        if (a[x] != b[x]){
            if (a[x] == ls[x]) return 0;
            if (b[x] == ls[x]) return 1;
            return a[x] < b[x];
        }
        x++;
    }
}

signed main(){
    int n;
    cin >> n;
    vector<string> v;
    for (int i=0; i<n; i++){
        string s;
        cin >> s;
        v.push_back(s);
        if (s.size() > ls.size()) ls = s;
    }
    sort(v.begin(), v.end(), comp);
    vector<char> res;
    string cs = "";
    for (int i=0; i<n; i++){
        while (cs != v[i].substr(0, cs.size())){
            res.push_back('-');
            cs.pop_back();
        }
        while (cs != v[i]){
            res.push_back(v[i][cs.size()]);
            cs += v[i][cs.size()];
        }
        res.push_back('P');
    }
    cout << res.size() << endl;
    for (char c : res) cout << c << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...