import java.util.*;

class Main {

    // Function to create the prefix sum array
    static int[] prefixSum(int[] nums) {
        int n = nums.length;
        int[] prefix = new int[n + 1];

        // Build the prefix array
        for (int i = 1; i <= n; i++) {
            prefix[i] = prefix[i - 1] + nums[i - 1];
        }

        return prefix;
    }

    // Function to find the sum from index l to r
    static int optimizedSum(int[] prefix, int l, int r) {
        return prefix[r + 1] - prefix[l];
    }

    public static void main(String[] args) {

        // Original array
        int[] nums = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

        // Create the prefix sum array
        int[] prefix = prefixSum(nums);

        // Range to find the sum
        int l = 3;
        int r = 7;

        // Print the sum
        System.out.println("Sum from index " + l + " to " + r + " = " + optimizedSum(prefix, l, r));
    }
}