Submission #1203429

#TimeUsernameProblemLanguageResultExecution timeMemory
1203429AMel0nType Printer (IOI08_printer)C++20
100 / 100
539 ms4684 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define FOR(i,N) for(ll i = 0; i < N; i++) #define all(x) (x).begin(), (x).end() #define F first #define S second string longest = ""; bool cmp(string &a, string &b) { for(ll i = 0; i < b.size(); i++) { if (a.size() == i) return 1; if (a[i] != b[i]) { if (a[i] == longest[i]) return 0; if (b[i] == longest[i]) return 1; return a[i] < b[i]; } } return 0; } signed main() { cin.tie(0); ios::sync_with_stdio(false); ll N; cin >> N; vector<string> s; FOR(i, N) { string _; cin >> _; s.push_back(_); if (_.size() > longest.size()) longest = _; } sort(all(s), cmp); vector<char> res; string cur = ""; FOR(i, N) { while(cur != s[i].substr(0, cur.size())) { res.push_back('-'); cur.pop_back(); } while(cur != s[i]) { res.push_back(s[i][cur.size()]); cur += s[i][cur.size()]; } res.push_back('P'); } cout << res.size() << endl; FOR(i, res.size()) cout << res[i] << endl; }
#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...