Exemple #1
0
    private static void Main()
    {
        int arrayLength = int.Parse(Console.ReadLine());

        int[] sourceArray = Array.ConvertAll(Console.ReadLine().Trim().Split(), int.Parse);
        var   solver      = new GSS3(sourceArray);

        var output         = new StringBuilder();
        int operationCount = int.Parse(Console.ReadLine());

        for (int o = 0; o < operationCount; ++o)
        {
            int[] operation = Array.ConvertAll(Console.ReadLine().Trim().Split(), int.Parse);

            if (operation[0] == 0)
            {
                solver.Update(
                    updateIndex: operation[1] - 1,
                    newValue: operation[2]);
            }
            else
            {
                output.Append(solver.Query(
                                  queryStartIndex: operation[1] - 1,
                                  queryEndIndex: operation[2] - 1));
                output.AppendLine();
            }
        }

        Console.Write(output);
    }
Exemple #2
0
    private static void Main()
    {
        int arrayLength = int.Parse(Console.ReadLine());
        int[] sourceArray = Array.ConvertAll(Console.ReadLine().Trim().Split(), int.Parse);
        int operationCount = int.Parse(Console.ReadLine());

        var solver = new GSS3(sourceArray);
        var output = new StringBuilder();

        for (int o = 0; o < operationCount; ++o)
        {
            int[] operation = Array.ConvertAll(Console.ReadLine().Trim().Split(), int.Parse);

            if (operation[0] == 0) // Update
            {
                solver.Update(
                    updateIndex: operation[1] - 1,
                    newValue: operation[2]);
            }
            else // Query
            {
                output.Append(solver.Query(
                    queryStartIndex: operation[1] - 1,
                    queryEndIndex: operation[2] - 1));
                output.AppendLine();
            }
        }

        Console.Write(output);
    }