Submission #1218969

#TimeUsernameProblemLanguageResultExecution timeMemory
1218969edga1Type Printer (IOI08_printer)C++20
100 / 100
38 ms5056 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 0; if(b[i]==lo[i]) return 1; return a[i]<b[i]; } } return 0; } int main(){ FIO; int n; cin>>n; vector<string> s(n); for(int i=0; i<n; i++){ cin>>s[i]; if(s[i].size()>lo.size()) lo=s[i]; } sort(s.begin(),s.end(),cmp); vector<char> d; string cur=""; for(int i=0; i<n; i++){ while(cur!=s[i].substr(0,cur.size())){ d.pb('-'); cur.pop_back(); } while(cur!=s[i]){ d.pb(s[i][cur.size()]); cur+=s[i][cur.size()]; } d.pb('P'); } 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...