Submission #1319184

#TimeUsernameProblemLanguageResultExecution timeMemory
1319184kawhietType Printer (IOI08_printer)C++20
20 / 100
1096 ms2392 KiB
#include <bits/stdc++.h> using namespace std; bool is_prefix(string &x, string &y) { int n = x.size(); if (n > y.size()) return false; for (int i = 0; i < n; i++) { if (x[i] != y[i]) { return false; } } return true; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<string> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } ranges::sort(a); vector<char> ans; do { vector<char> res; string x; for (int i = 0; i < n; i++) { while (!is_prefix(x, a[i])) { x.pop_back(); res.push_back('-'); } int t = x.size(); for (int j = t; j < a[i].size(); j++) { x.push_back(a[i][j]); res.push_back(a[i][j]); } res.push_back('P'); } if (ans.empty() || res.size() < ans.size()) { ans = res; } } while (next_permutation(a.begin(), a.end())); cout << ans.size() << '\n'; for (auto c : ans) { cout << c << '\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...