# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
989162 | 2024-05-27T16:12:25 Z | aykhn | Type Printer (IOI08_printer) | C++17 | 32 ms | 37848 KB |
#include <bits/stdc++.h> using namespace std; const int MXN = 25000 * 20 + 5; int n, m; int node[MXN][26], cnt[MXN]; vector<int> adj[MXN]; char val[MXN]; int mx[MXN], cur; vector<char> moves; void add(int a, int i, string &s) { if (i == s.length()) { cnt[a]++; mx[a] = s.length(); return; } if (!node[a][s[i] - 'a']) node[a][s[i] - 'a'] = ++m, adj[a].push_back(m), val[m] = s[i]; add(node[a][s[i] - 'a'], i + 1, s); mx[a] = max(mx[a], mx[node[a][s[i] - 'a']]); } void dfs(int a) { if (a); moves.push_back(val[a]); for (int i = 0; i < cnt[a]; i++) moves.push_back('P'), cur++; for (int v : adj[a]) dfs(v); if (cur != n) moves.push_back('-'); } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; string s[n]; for (string &i : s) cin >> i, add(0, 0, i); for (int i = 0; i <= m; i++) { sort(adj[i].begin(), adj[i].end(), [&](const int &a, const int &b) { return mx[a] < mx[b]; }); } dfs(0); cout << moves.size(); for (char &ch : moves) cout << '\n' << ch; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 14680 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 14684 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 14684 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 14684 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 14680 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 15704 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 18268 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 15 ms | 24024 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 32 ms | 37848 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 30 ms | 32616 KB | Line " |
2 | Halted | 0 ms | 0 KB | - |