Też zrobiłem na cin, cout + ios::sync_with_stdio(0) ===> AC czas 1.26
90 linijek to kodzik? [ok 20 linijek kodziku w zupełności wystarczyłoby]
Dlatego trudno to analizować.
Niee, to przez programistę, bo to od niego zależy co z tym [ze wskaźnikami] zrobi.
PS
Musisz przemyśleć i skrócić kod - nic tu raczej nie da się zrobić i wymyśleć. Przy okazji przemyśl taką swoją dziwną konstrukcję:
if(p)
{
while(p)
{
...
Oczywiście wątpię, czy jej poprawienie spowoduje cudowne nie TLE
PS 2
Nie rozumiem też twojego sposobu pisania main(). Przecież wszyscy wiedzą, że prawidłowo [ale też bez wpływu na TLE] powinno się pisać:
int main(){
starter();
}
i tyle , bez zbędnych śmieci w main().