static object Solve() { var(n, k) = Read2(); var s = Console.ReadLine(); var r = new List <char>(); var comp = Comparer2 <int> .Create(i => s[i], i => i); var set = new IndexedMultiSet <int>(comp); for (int i = 0; i < n - k; i++) { set.Add(i); } var t = -1; for (int i = n - k; i < n; i++) { set.Add(i); while (set.GetFirst() < t) { set.RemoveAt(0); } t = set.RemoveAt(0); r.Add(s[t]); } return(string.Join("", r)); }
private void MultiSetAdd() { for (int i = 0; i < count; i++) { multiSet.Add(i); } }
static void Main() { var n = int.Parse(Console.ReadLine()); var l = Read(); var set = new IndexedMultiSet <int>(); foreach (var x in l) { set.Add(x); } Array.Sort(l); var r = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { r += set.GetLastIndex(x => x < l[i] + l[j]) - j; } } Console.WriteLine(r); }
static void Main() { var n = int.Parse(Console.ReadLine()); var ss = Array.ConvertAll(new bool[n], _ => Console.ReadLine()); var comp = Comparer2 <string> .Create(s => s.TrimStart('0').Length, s => s.TrimStart('0'), s => - s.Length); var set = new IndexedMultiSet <string>(comp); foreach (var s in ss) { set.Add(s); } Console.WriteLine(string.Join("\n", set)); }
static void Main() { var n = int.Parse(Console.ReadLine()); var set = new IndexedMultiSet <int>(); Console.SetOut(new System.IO.StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false }); while (n-- > 0) { var q = Array.ConvertAll(Console.ReadLine().Split(), int.Parse); if (q[0] == 0) { set.Add(q[1]); Console.WriteLine(set.Count); } else if (q[0] == 1) { Console.WriteLine(set.GetCount(q[1])); } else if (q[0] == 2) { while (set.RemoveOne(q[1])) { ; } } else { foreach (var x in set.GetItems(x => x >= q[1], x => x <= q[2])) { Console.WriteLine(x); } } } Console.Out.Flush(); }
public void SetUp() { set.Clear(); set.Add(10); set.Add(20); set.Add(20); set.Add(30); set.Add(30); set.Add(30); set.Add(100); }