Submission #1218964

#TimeUsernameProblemLanguageResultExecution timeMemory
1218964edga1Type Printer (IOI08_printer)C++20
20 / 100
14 ms2240 KiB
#include <bits/stdc++.h>

using namespace std;

#define FIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define pb push_back
#define fi first
#define se second

const int N = 1e5 + 5;
const ll MOD = 1e9 + 7;
const ll INF = 1e9;
string lo;

bool cmp(string &a, string &b){
    for(int i=0; i<b.size(); i++){
        if(a.size()==i) return 1;
        if(a[i]!=b[i]){
            if(a[i]==lo[i]) return 1;
            if(b[i]==lo[i]) return 0;
            return a[i]<b[i];
        }else{
            if(a[i]!=lo[i]) break;
        }
    }
    return a<b;
}

int main(){
    FIO;
    int n; cin>>n;
    vector<string> s(n);
    int l=0;
    for(int i=0; i<n; i++){
        cin>>s[i];
        if(s[i].size()>l){
            l=s[i].size();
            lo=s[i];
        }
    }
    sort(s.begin(),s.end(),cmp);
    l=s[n-1].length();
    vector<char> d;
    for(int i=0; i<s[n-1].length(); i++) d.pb(s[n-1][i]);
    d.pb('P');
    for(int i=n-2; i>=0; i--){
        int v=0;
        for(int j=0; j<min(s[i].length(),s[i+1].length()); j++){
            if(s[i][j]==s[i+1][j]) v++;
            else break;
        }
        for(int j=0; j<l-v; j++) d.pb('-');
        for(int j=v; j<s[i].length(); j++) d.pb(s[i][j]);
        d.pb('P');
        l=s[i].length();
    }
    cout<<d.size()<<'\n';
    for(auto a : d){
        cout<<a<<'\n';
    }
    return 0;
}
#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...