Submission #934441

#TimeUsernameProblemLanguageResultExecution timeMemory
934441bashNewbieType Printer (IOI08_printer)C++17
100 / 100
74 ms50952 KiB
#include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; #define fast_io ios::sync_with_stdio(0), cin.tie(0) const int N = 5e5+7, K = 26; int adj[N][K+1], len; string ms, ret; inline void pr(char c) { ret += c; } inline void pr(int c) { ret += c+'a'; } void add(string& s) { int x = 0; for(char ch: s) { int c = ch-'a', y = adj[x][c]; if(!y) adj[x][c] = ++len; x = adj[x][c]; } adj[x][K] = 1; } void dfs(int x, int in, int d) { int c = in && d < (int)ms.size()? ms[d]-'a': -1; for(int j = 0; j < K+1; j++) { int y = adj[x][j]; if(!y) continue; if(j == K) pr('P'); else { if(!in || in && j != c) pr(j), dfs(y, 0, d+1); } } if(~c) pr(c), dfs(adj[x][c], 1, d+1); if(!in) pr('-'); } int main() { fast_io; int n, l = 0; string s; cin >> n; for(int i = 0; i < n; i++) { cin >> s, add(s); if((int)s.size() > l) l = (int)s.size(), ms = s; } dfs(0, 1, 0); cout << (int)ret.size() << "\n"; for(char c: ret) cout << c << "\n"; }

Compilation message (stderr)

printer.cpp: In function 'void dfs(int, int, int)':
printer.cpp:38:17: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   38 |    if(!in || in && j != c) pr(j), dfs(y, 0, d+1);
      |              ~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...