답안 #1083455

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1083455 2024-09-03T08:38:04 Z raul2008487 Type Printer (IOI08_printer) C++17
0 / 100
33 ms 48492 KB
#include<bits/stdc++.h>

#define ll long long
#define pb push_back
#define in insert
#define fi first
#define se second
#define endl "\n"
#define vl vector<ll>
#define all(v) v.begin(), v.end()

using namespace std;
const ll inf = 1e17;
const int sz = 1e5 + 123;
const int MAX = 2001;
const ll mod = 1e9;
ll id, to[sz][26], par[sz], d[sz];
vl cnt(sz), sub(sz);
char alphabet[26];
bool longest[sz];
array<ll, 2> best = {0, 0};
void insert(string &s){
    ll p = 0;
    sub[0] ++;
    for(auto c: s){
        if(!to[p][c - 'a']){
            to[p][c - 'a'] = ++id;
            par[id] = p;
            d[id] = d[p] + 1;
            if(d[id] > best[0]){
                best = {d[id], id};
            }
        }
        p = to[p][c - 'a'];
        sub[p] ++;
    }
    cnt[p] ++;
}
void dfs(ll p){
    while(cnt[p]--){
        cout << 'P' << endl;
    }
    char l = '*';
    ll nxt;
    for(char c: alphabet){
        nxt = to[p][c - 'a'];
        if(!nxt){continue;}
        if(longest[nxt]){
            l = c;
        }
        else{
            cout << c << endl;
            dfs(nxt);
            cout << '-' << endl;
        }
    }
    if(l != '*'){
        cout << l << endl;
        dfs(to[p][l - 'a']);
    }
}
void solve(){
    ll n, i, j;
    for(i = 0; i < 26; i++){
        alphabet[i] = char('a' + i);
    }
    cin >> n;
    string s;
    for(i = 1; i <= n; i++){
        cin >> s;
        insert(s);
    }
    ll node = best[0];
    while(node){
        longest[node] = 1;
        node = par[node];
    }
    dfs(0);


}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll t = 1;
    //cin >> t;
    while(t--){
        solve();
    }
}
/*
5
pushkin
lermontov
tolstoy
gogol
gorkiy
*/

Compilation message

printer.cpp: In function 'void solve()':
printer.cpp:63:14: warning: unused variable 'j' [-Wunused-variable]
   63 |     ll n, i, j;
      |              ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 1880 KB Expected integer, but "t" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1880 KB Expected integer, but "e" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1880 KB Expected integer, but "h" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1884 KB Expected integer, but "b" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 2140 KB Expected integer, but "a" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 3416 KB Expected integer, but "a" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 8 ms 7440 KB Expected integer, but "a" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 15 ms 16216 KB Expected integer, but "a" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 29 ms 48492 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 33 ms 48464 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -