Submission #1188986

#TimeUsernameProblemLanguageResultExecution timeMemory
1188986raspyType Printer (IOI08_printer)C++20
100 / 100
15 ms5948 KiB
#include <iostream> #include <string> #include <algorithm> using namespace std; string a[25001]; int main() { ios_base::sync_with_stdio(0);cin.tie(0); int n; cin >> n; string nj = ""; for (int i = 0; i < n; i++) { cin >> a[i]; if (a[i].size() > nj.size()) nj = a[i]; } sort(a, a+n, [&nj](const string& pr, const string& dr){ for (int i = 0; i < nj.size(); i++) { if (i == pr.size() || i == dr.size()) break; if (pr[i] == nj[i] && dr[i] != nj[i]) return false; if (pr[i] != nj[i] && dr[i] == nj[i]) return true; if (pr[i] != nj[i] && dr[i] != nj[i]) break; } return pr < dr; }); int pr = 0; int sto = 0; string ans = ""; for (int i = 0; i < n; i++) { int zc = 0; if (i) { bool nap = false; for (int j = 0; j < a[i-1].size(); j++) { if ((j == a[i].size() || a[i][j] != a[i-1][j]) && !nap) nap = 1, zc = j; if (nap) ans += "-\n"; } if (a[i-1].size() < a[i].size() && !nap) zc = a[i-1].size(); } for (int j = zc; j < a[i].size(); j++) { ans += a[i][j]; ans += "\n"; } ans += "P\n"; } cout << ans.size()/2 << "\n"; cout << ans; 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...