제출 #1342080

#제출 시각아이디문제언어결과실행 시간메모리
1342080kaoklaxdType Printer (IOI08_printer)C++20
10 / 100
24 ms2464 KiB
#include "bits/stdc++.h"
using namespace std;
struct String{
    string s;
    bool operator<(const String &x)const{
        if(x.s.length() == s.length()) return x.s > s;
        else return x.s.length() > s.length();
    }
};
int main(){
    int n;
    cin >> n;
    vector <String> s(n);
    for(int i=0;i<n;i++) cin >> s[i].s;
    sort(s.begin(),s.end());
    string ans = "";int itr=0;bool last = 0;
    for(int i=0;i<s.size();i++){
        int j;
        if(last){
            j = itr;
            last = 0;
        } 
        else j = 0;
        int cnt = 0,M = 0;
        for(;j<s[i].s.length();j++){
            ans+=s[i].s[j];
            if(i<s.size()-1 && s[i].s[j] == s[i+1].s[j] && cnt != -1){
                cnt++;
                M = cnt;
            }
            else{
                cnt = -1;
            }
        }
        if(M > 0){
            itr = M;
            cnt = -1;
            last = 1;
        }
        ans+='P';
        int num;
        if(last) num = s[i].s.length()-itr;
        else num = s[i].s.length();
        if(i < s.size()-1) for(int j=0;j<num;j++) ans+='-';
    }
    cout << ans.length() << '\n';
    for(auto x: ans){
        cout << x << '\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...