Czy nie jest tak, że to ludzie sami się oszukują oczekując czegoś innego niż oferuje im SPOJ. Spoj nie jest jakimś cudownym lekarstwem, panaceum, które za rączkę przeprowadzi każdego chętnego od wieku raczkowania do profesjonalnego programisty. Jeżeli ktoś stosuje zasadę 3 x Z, zakuj, zalicz, zapomnij, to spoj jest tylko małym ogniwem w tym łańcuchu - zaliczeniem, tego czego użytkownik nauczył się lub znalazł czy wyklikał i nie od spoja zależy co z tą wiedzą zrobi. Może to Ty @tarpauwatratar wprowadzasz w błąd i oszukujesz i siebie i oszukujesz innych wypisując swoje wymagania i niesprawdzone informacje. Nauka algorytmów to nie nauka korzystania z bibliotek. Nie ważne jak napiszesz [wyklepiesz] kod, jeżeli daje poprawne wyniki, to dostajesz AC. Nie musisz pisać obiektowo, czystym kodem, czy używać lub nie bibliotek - przecież je tu masz np dla C++, spróbowałeś chociaż to sprawdzić? Jeżeli nie to po co piszesz takie bzdury!?
PS
Jeżeli klepiesz to jesteś klepaczem, koderem, kopistą, copy-pasterem, a nie programistą
PS 2
Czy na twoim kółku informatycznym próbowaliście policzyć silnię z 1 000 000 000? I sprawdzić ile to zajmuje czasu? To zadanie możesz rozwiązać dokładnie tak jak uczyłeś się na kółku. Możesz napisać funkcję silnia, może być rekurencyjna lub iteracyjna, ale z małym, pojedynczym if’em. Jeżeli n jest większe od … to od razu podajesz wynik, jeżeli nie, a n jest “wystarczająco” małe to możesz obliczyć silnie tradycyjnie. Nie potrzeba tu stada if - else albo case swichów. ALe nie zależnie jak to zrobisz, jeżeli podasz poprawnie dwie ostatnie cyfry n!, to spoj zaliczy Ci zadanie.