Example #1
0
    static void Main()
    {
        //var st = new SegTree<int>(14, Math.Max);
        var st = new SegTree <int>(14, delegate(int x, int y) { return(x + y); });

        st.Print();

        st.Update(5, 3);
        st.Print();
        st.Update(8, 4);
        st.Print();
        st.Update(10, 2);
        st.Print();

        Console.WriteLine(st.Query(3, 7));
    }
Example #2
0
    static void Main()
    {
        var N = long.Parse(Console.ReadLine());
        var A = Console.ReadLine().Split(' ').Select(long.Parse).ToList();

        var E = new List <long> [N];

        for (int i = 0; i < N; ++i)
        {
            E[i] = new List <long>();
        }

        for (int i = 0; i < N - 1; ++i)
        {
            var uv = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
            int u = uv[0], v = uv[1];
            E[u - 1].Add(v - 1);
            E[v - 1].Add(u - 1);
        }



        //var st = new SegTree<int>(14, Math.Max);
        var st = new SegTree <int>(14, delegate(int x, int y) { return(x + y); });

        st.Print();

        st.Update(5, 3);
        st.Print();
        st.Update(8, 4);
        st.Print();
        st.Update(10, 2);
        st.Print();

        Console.WriteLine(st.Query(3, 7));
    }