| 62 | } |
| 63 | |
| 64 | void dfs(int u = 0){ |
| 65 | vis[u] = true; |
| 66 | if(node[u].len > bestlen && node[u].cnt > 1 && u != 0){ |
| 67 | bestidx = node[u].firstpos - node[u].len + 1; |
| 68 | bestlen = node[u].len; |
| 69 | } |
| 70 | for(const auto& [c, v] : node[u].nxt) |
| 71 | if(!vis[v]) |
| 72 | dfs(v); |
| 73 | } |
| 74 | |
| 75 | int main(){ |
| 76 | scanf(" %s", S); |