# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1172501 | lopkus | Type Printer (IOI08_printer) | C++20 | 1096 ms | 2644 KiB |
#include <bits/stdc++.h>+
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n;
std::cin >> n;
std::vector<int> p(n, 0);
for(int i = 0; i < n; i++) {
p[i] = i;
}
std::vector<std::string> a(n);
for(int i = 0; i < n; i++) {
std::cin >> a[i];
}
int ans = 1e7;
std::vector<char> operations;
do {
int to = a[p[0]].size();
to += n;
std::vector<char> curr;
for(int i = 0; i < a[p[0]].size(); i++) {
curr.push_back(a[p[0]][i]);
}
curr.push_back('P');
for(int i = 1; i < n; i++) {
int s = 0;
while(s < std::min(a[p[i]].size(), a[p[i - 1]].size()) && a[p[i]][s] == a[p[i - 1]][s]) {
s += 1;
}
to += a[p[i]].size() - s;
to += a[p[i - 1]].size() - s;
for(int j = a[p[i - 1]].size() - s; j > 0; j--) {
curr.push_back('-');
}
for(int j = s; j < a[p[i]].size(); j++) {
curr.push_back(a[p[i]][j]);
}
curr.push_back('P');
}
if(to < ans) {
operations = curr;
ans = to;
}
}while(next_permutation(p.begin(), p.end()));
std::cout << ans << "\n";
for(auto x : operations) {
std::cout << x << "\n";
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |