I passed problem C of round 980 (Div 1) with a sketchy code that I wrote: https://codeforces.me/contest/2023/submission/300471200
The code has a fast and slow pointer. Set an initial value called match to 0. If a[fast%n] != b[slow%n], increase fast by 1, and set match to 0. Otherwise, increase fast and slow both by 1, and increase match by 1. If fast is greater than slow by n, then a is not a cycle of b. Otherwise, if match is n, then a is a cycle of b.
I would really appreciate it if someone could send me either a test case that TLEs this code, or the proof of why this code works. Thanks.
If my understanding of what you're doing is correct, testcase where the array $$$a$$$ is $$$n-1$$$ ones and $$$1$$$ two and $$$b$$$ is $$$n$$$ ones TLEs, because whenever $$$fast \% n$$$ reaches the $$$2$$$ in $$$a$$$, it just increases by $$$1$$$, increasing $$$fast-slow$$$ by $$$1$$$, and then we just traverse the entire array again.
Thank you for the reply!