Quando moltiplichi interi a 32 bit il risultato resta a 32 bit, salvarlo in un long long non aiuta se l’overflow è già avvenuto. Prova a usare risp=C*1LL*(R-C+1) o risp = (long long)C*(long long)(R-C+1), che estende gli interi fino a 64 bit prima della moltiplicazione.
Tecnicamente, la maggior parte dei task che mi vengono in mente hanno dati superflui prendi poldo, ad esempio: hai un numero N in input seguito da una riga con N numeri. Basterebbe leggere la seconda riga come stringa e splittarla sullo spazio, ottenendo un array lungo N, quindi dare N all’inizio è superfluo. Pensa anche a qualsiasi problema in cui viene data in input una matrice N x M e vengono dati (in modo superfluo) i valori di N e M.
Vero quello che dici, però nei task di cui parli i dati “superflui” fanno comunque comodo per chi scrive il codice, Qui mi sembrava che N non servisse proprio, tutto qui.