# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1012432 | vjudge1 | Type Printer (IOI08_printer) | C++17 | 81 ms | 57304 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define ll long long
#define pii pair <int, int>
using namespace std;
const int N = 1e6 + 10;
const int siz = 28;
struct node {
int ch[siz];
int vis;
int biggest;
} trie[N];
int ncnt, rt;
char s[N][22];
vector <char> ans;
inline void insert(char *s, int ok) {
int p = rt;
for (int i = 0; s[i]; ++i) {
int j = s[i] - 'a';
if (!trie[p].ch[j])
trie[p].ch[j] = ++ncnt;
trie[p].biggest |= ok;
p = trie[p].ch[j];
}
trie[p].biggest |= ok;
trie[p].vis ++;
}
inline int find(char *s) {
int p = rt;
for (int i = 0; s[i]; ++i) {
int j = s[i] - 'a';
if (!trie[p].vis)
return 0;
p = trie[p].ch[j];
}
return trie[p].vis;
}
inline void dfs(int x) {
if (trie[x].vis) {
ans.push_back('P');
}
for (int i = 0; i < siz; ++i) {
if (trie[x].ch[i] && !trie[trie[x].ch[i]].biggest) {
ans.push_back(i + 'a');
dfs(trie[x].ch[i]);
}
}
for (int i = 0; i < siz; ++i) {
if (trie[x].ch[i] && trie[trie[x].ch[i]].biggest) {
ans.push_back(i + 'a');
dfs(trie[x].ch[i]);
}
}
if (x) ans.push_back('-');
}
int main() {
int n; scanf("%d", &n);
int maxn = 0, id = 0;
for (int i = 1; i <= n; ++i) {
scanf("%s", s[i]);
if(strlen(s[i]) > maxn) {
maxn = strlen(s[i]);
id = i;
}
}
for (int i = 1; i <= n; ++i) {
if (i == id) insert(s[i], 1);
else insert(s[i], 0);
}
dfs(0);
int k = ans.size() - 1;
while (ans[k] == '-' && k > 0) k --;
k += 1;
printf("%d\n", k);
for (int i = 0; i < k; ++i)
printf("%c\n", ans[i]);
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... |