# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
924976 | 2024-02-10T09:12:39 Z | vjudge1 | Type Printer (IOI08_printer) | C++17 | 45 ms | 22112 KB |
#include <bits/stdc++.h> #define ll long long #define F first #define S second #define pii pair<int,int> const int mod = 1e9 + 7; const int mxN = 6e6 + 5; using namespace std; int trie[mxN][26]; int nodeCnt; char cnt[mxN]; int p[mxN]; string chk; int ed; int mx; void insert(int u = 0){ for(int i = 0;i <chk.size();i++){ if(!trie[u][chk[i] - 'a']) trie[u][chk[i] - 'a'] = ++nodeCnt; u = trie[u][chk[i] - 'a']; cnt[u] = chk[i]; } } void calcD(int u = 0,int dep = 0){ if(dep > mx){ ed = u; mx = dep; } // cout<<u<<' '; for(int i = 0;i < 26;i++){ if(trie[u][i]) { p[trie[u][i]] = u; calcD(trie[u][i],dep + 1); } } } set<int>path; vector<char>ans; void query(int u = 0){ queue<int> q; int lst = -1; for(int i = 0;i < 26;i++){ if(trie[u][i]){ if(path.find(trie[u][i]) != path.end()) lst = trie[u][i]; else q.push(trie[u][i]); } } if(lst == -1 && q.empty()){ ans.push_back('P'); return; } if(lst != -1) q.push(lst); while(q.size()){ ans.push_back(cnt[q.front()]); query(q.front()); ans.push_back('-'); q.pop(); } } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >>n; for(int i = 0;i < n;i++){ cin >>chk; insert(); } calcD(); while(ed){ path.insert(ed); ed = p[ed]; } query(); // cout<<"TEST\n"; while(ans.back() == '-') ans.pop_back(); cout<<ans.size()<<'\n'; for(auto x : ans){ cout<<x<<'\n'; } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2392 KB | Output is correct |
2 | Correct | 1 ms | 2396 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2396 KB | Output is correct |
2 | Correct | 1 ms | 2396 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 2396 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2392 KB | Output is correct |
2 | Incorrect | 1 ms | 2392 KB | didn't print every word |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 2396 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 3164 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 5208 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 21 ms | 11484 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 45 ms | 22112 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 33 ms | 18128 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |