Tak, da się, algorytmu nie przyspieszysz, bo coś innego niż pętla for zbytnio się nie da wymyślić, to, co możesz ulepszyć to struktura danych.
W twoim programie jest to zwykła tablica i spoko, ale pomyśl sobie co by było jakbyś wsadził tam drzewo binarne. Drzewo bardzo proste: każdy wierzchołek ma indeks początku przedziału, kończ przedziału i sumę czerwonych tulipanów w tym przedziale (oczywiście w korzeniu masz przedział [0, 500000], w jego synach [0,250000], [250000, 500000] i tak malejący o pół).Wysokość takiego drzewa to 19, bo 2^18 < 500000 < 2^19. Żeby obliczyć sumę, musiałbyś najpierw dotrzeć do odpowiednich wierzchołków, dodać z nich wartości i już. Jakbyś miał sumować liczby z przedziału [125000, 350000] to u ciebie trzeba by dodać 225000 liczb, w drzewie wykonać 4 if-y (żeby znaleźć wierzchołki) i dodać wartości w nich zawarte - 5 operacji.
Oczywiście koszt tworzenia takiego drzewa jest niezerowy, ale dla dużej ilości operacji dodawania (szczególnie na dużych przedziałach) zwraca się z nawiązką. Jak przedziały będą wąskie lub operacji będzie mało pętla for będzie szybsza.