Deseori te omoara timpul rau de tot daca faci toate operatiile pe long long

.
Intr-adevar, dureaza cu pana la 150% mai mult la inmultire si cu 100% mai mult la adunare daca faci asa:
long long v = 0, i;
for (i = 0; i <= 1000000000; ++ i) {
v = v + i;
}
fata de asa:
int v = 0, i;
for (i = 0; i <= 1000000000; ++ i) {
v = v + i;
}
Dar dureaza cu 83% mai mult la adunare si 24% mai mult la inmultire daca faci asa:
long long v = 0, i;
for (i = 0; i <= 1000000000; ++ i) {
v = v + i;
}
fata de asa:
long long v = 0;
int i;
for (i = 0; i <= 1000000000; ++ i) {
v = v + i;
}
Daca programul tau e la limita, intr-adevar conteaza optimizarile astea, dar daca nu consuma nici macar jumatate sau o treime din limita de timp, de ce sa te complici?
(Pe topcoder limita e de 2 secunde cam la toate problemele, desi 0.1 secunde ar fi arhisuficient la majoritatea).