示例#1
0
    static void Main()
    {
        var n = int.Parse(Console.ReadLine());

        var r   = new List <int>();
        var set = new Treap <int>();

        for (int i = 0; i < n; i++)
        {
            var q = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
            if (q[0] == 0)
            {
                set.Add(q[1]);
                r.Add(set.Count);
            }
            else if (q[0] == 1)
            {
                r.Add(set.Contains(q[1]) ? 1 : 0);
            }
            else if (q[0] == 2)
            {
                set.Remove(q[1]);
            }
            else
            {
                r.AddRange(set.GetItems(x => x >= q[1], x => x <= q[2]));
            }
        }
        Console.WriteLine(string.Join("\n", r));
    }