Submission #1218959

#TimeUsernameProblemLanguageResultExecution timeMemory
1218959edga1Type Printer (IOI08_printer)C++20
0 / 100
15 ms1860 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<lo.length(); i++){
        if(a[i]==b[i]){
            if(a[i]!=lo[i]) break;
        }
        else{
            if(a[i]==lo[i]) return 1;
            if(b[i]==lo[i]) return 0;
        }
    }
    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();
    for(int i=0; i<s[n-1].length(); i++) cout<<s[n-1][i]<<'\n';
    cout<<"P\n";
    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++) cout<<"-\n";
        for(int j=v; j<s[i].length(); j++) cout<<s[i][j]<<'\n';
        cout<<"P\n";
        l=s[i].length();
    }
    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...