# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
582389 | mohammad_kilani | Type Printer (IOI08_printer) | C++17 | 64 ms | 59228 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define oo 1000000010
#define mod 998244353
const int N = 25000;
const int M = N * 20 + 1;
int T[M][26] , nodeCnt = 1;
pair< int , int > lastCharacter[M];
bool shouldBePrinted[M];
void insert(string &s){
int node = 0;
for(int i = 0;i < (int)s.size();i++){
if((int)s.size() > lastCharacter[node].first){
lastCharacter[node] = make_pair((int)s.size() , s[i] - 'a');
}
if(T[node][s[i] - 'a'] == -1){
lastCharacter[nodeCnt] = make_pair(-oo , -1);
T[node][s[i] - 'a'] = nodeCnt++;
}
node = T[node][s[i] - 'a'];
}
shouldBePrinted[node] = true;
}
string ans;
void DFS(int node,bool erja3){
if(shouldBePrinted[node]){
ans += 'P';
ans += '\n';
}
for(int i = 0;i < 26;i++){
if(T[node][i] != -1 && i != lastCharacter[node].second){
ans += (char)(i + 'a');
ans += '\n';
DFS(T[node][i] , true);
ans += '-';
ans += '\n';
}
}
if(lastCharacter[node].second != -1){
ans += (lastCharacter[node].second + 'a');
ans += '\n';
DFS(T[node][lastCharacter[node].second] , erja3);
if(erja3){
ans += '-';
ans += '\n';
}
}
}
int main(){
memset(T,-1,sizeof(T));
lastCharacter[0] = make_pair(-oo , -1);
int n;
scanf("%d",&n);
char tmpRead[21];
string s;
for(int i = 0 ;i < n;i++){
scanf("%s",tmpRead);
s = (string)tmpRead;
insert(s);
}
DFS(0 , false);
cout << (int)ans.size() / 2 << endl;
printf("%s",ans.c_str());
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... |