Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int max_n = 1e5 + 228;
- int go[max_n][26];
- int sz[max_n];
- bool is_term[max_n];
- int count_of_note;
- int add_string(string s) {
- int just = 0;
- int cnt = 0;
- int ans = s.size();
- for (int i = 0; i < s.size(); i++) {
- if (sz[just] == 1) {
- cnt++;
- }
- if (!go[just][s[i] - 'a']) {
- if (is_term[just]) {
- ans -= max(0, cnt - 1);
- }
- count_of_note++;
- go[just][s[i] - 'a'] = count_of_note;
- }
- sz[just]++;
- just = go[just][s[i] - 'a'];
- }
- sz[just]++;
- is_term[just] = true;
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement