제출 #1218961

#제출 시각아이디문제언어결과실행 시간메모리
1218961edga1Type Printer (IOI08_printer)C++20
30 / 100
17 ms2244 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(); 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...