1) http://pl.spoj.com/problems/TTRI/ prosty algorytm a nawet zadanie na poziomie gimbazy bądź podstawówki. Ale jednocześnie zagadnienie powierzchniowo związane z algorytmem polegające na ślizganiu się na granicy pojemności wbudowanych typów. Bardzo wiele problemów praktycznych wymaga odpowiedniego pomyślunku związanego z zakresem danych. Trzeba wiedzieć, kiedy wystarczy int, a kiedy trzeba liczyć się z możliwością wystąpienia liczby rzędu 10 do entej. Inaczej w przypadku pojawienia się mocno skrajnego przypadku - klapa.
W XXI wieku wciąż istnieją zagadnienia, kiedy ograniczona jest pamięć i trzeba nią oszczędnie gospodarować.
2) Z tego co mi wiadomo kiedyś (C a nie C++) było dopuszczalne używanie samego maina. Niektóre kompilatory wciąż pozwalają kompilować taki kod. Doskonała sztuczka do "czelendży" na SPOJu 