Po pierwsze, gdy używasz iostream na SPOJu to zawsze dodawaj tą linijkę od razu po mainie:
ios_base::sync_with_stdio(0);
Bez tej linijki rozwiązania używające iostreama bardzo często dostają TLE na SPOJu.
Po drugie, Twój program nie działa poprawnie na teście przykładowym.
EDIT: Sorry za odkop, nie spojrzałem na datę.