void Solve() { /*var hoge = new List<int>(); * for (var i = 0; i < 20; i++) hoge.Add(Treap<int>.rand.Next(100)); * var tr = new Treap<int>(); * foreach (var x in hoge) tr.Insert(x); * WriteLine("hoge = " + string.Join(", ", hoge)); * WriteLine("tr = " + string.Join(", ", tr)); * hoge.Sort(); * WriteLine("hoge = " + string.Join(", ", hoge)); * WriteLine(tr); * var a = hoge[Treap<int>.rand.Next(20)]; * tr.Remove(a); * WriteLine($"removed {a}"); * WriteLine(tr);*/ var Q = F; var tr = new Treap <int>(); while (Q-- > 0) { var I = G; if (I[0] == 1) { tr.Insert(I[1]); } else { var x = tr.At(I[1] - 1); WriteLine(x.Value); tr.Remove(x.Value); } } }