# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
476449 | chenwz | Type Printer (IOI08_printer) | C++11 | 108 ms | 49356 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int SIG = 26, NN = 25000;
struct Node {
int ch[SIG];
bool mark, end;
} T[NN * 20];
int sz = 0;
void insert(const string &s) {
int u = 0;
for (char c : s) {
int d = c - 'a', &cu = T[u].ch[d];
if (!cu) cu = ++sz;
u = cu;
}
T[u].end = true;
}
void dfs(int u, string& ans) {
const Node& x = T[u];
if (x.end) ans += 'P'; // 单词结尾, 打印
int mi = -1;
for (int i = 0; i < SIG; ++i) {
int v = x.ch[i];
if(!v) continue;
if (T[v].mark) mi = i; // 先不走最长的串
else ans += i + 'a', dfs(v, ans); // 走其它串
}
if (mi != -1) // 走最长串
ans += mi + 'a', dfs(x.ch[mi], ans);
ans += '-';
}
int main() {
char B[24];
int n; scanf("%d", &n);
string s, l;
for (int i = 0; i < n; ++i) {
scanf("%s", B), s = string(B), insert(s);
if (s.length() > l.length()) l = s;
}
for(size_t i = 0, u = 0; i < l.size(); i++) // 标记最长的单词
u = T[u].ch[l[i] - 'a'], T[u].mark = true;
s.clear(), dfs(0, s);
while(s.back() == '-') s.pop_back(); // 最后的字符全部删掉
printf("%lu\n", s.size());
for (char c : s) printf("%c\n", c);
return 0;
}
컴파일 시 표준 에러 (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... |