# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1077558 | 2024-08-27T08:01:23 Z | juicy | Type Printer (IOI08_printer) | C++17 | 44 ms | 19540 KB |
#include <bits/stdc++.h> using namespace std; #ifdef LOCAL #include "debug.h" #else #define debug(...) 42 #endif const int N = 25000, L = 20, MAX = N * L + 3, C = 26; int node; int dep[MAX], ind[MAX], ma[MAX]; bool flg[N]; array<int, C> nxt[MAX]; void add(string s) { int p = 0; for (char c : s) { if (!nxt[p][c - 'a']) { nxt[p][c - 'a'] = ++node; } p = nxt[p][c - 'a']; } flg[p] = 1; } void dfs(int u) { ma[u] = dep[u]; ind[u] = u; for (int v : nxt[u]) { if (v) { dep[v] = dep[u] + 1; dfs(v); if (ma[v] > ma[u]) { ma[u] = ma[v]; ind[u] = v; } } } } void dfs(int u, bool keep) { if (flg[u]) { cout << "P" << "\n"; } char s; for (int i = 0; i < C; ++i) { int v = nxt[u][i]; if (v && v != ind[u]) { cout << char(i + 'a') << "\n"; dfs(v, 0); } else if (v == ind[u]) { s = i + 'a'; } } if (ind[u] ^ u) { cout << s << "\n"; dfs(ind[u], keep); } if (!keep) { cout << "-" << "\n"; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; for (int i = 0; i < n; ++i) { string s; cin >> s; add(s); } dfs(0); cout << 2 * node + n - ma[0] << "\n"; dfs(0, 1); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 1 ms | 444 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Output is correct |
2 | Correct | 1 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 2 ms | 856 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 1116 KB | Output is correct |
2 | Correct | 4 ms | 1372 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 3292 KB | Output is correct |
2 | Incorrect | 19 ms | 6744 KB | printed invalid word |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 18 ms | 7972 KB | printed invalid word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 41 ms | 19540 KB | printed invalid word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 44 ms | 15188 KB | printed invalid word |
2 | Halted | 0 ms | 0 KB | - |