using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp3 { abstract class Zviera { static int nextId = 0; int id; public Zviera() { id = ++nextId; } public bool mensinez(Zviera z) { return (z.id < id); } public abstract float Hmotnost(); public abstract float rychlost(); public virtual bool jePredator() { return false; } } class Lev : Zviera { public override float Hmotnost() { return 190.0f; } public override float rychlost() { return 80f; } public override bool jePredator() { return true; } } class Danek : Zviera { public override float Hmotnost() { return 50.0f; } public override float rychlost() { return 40f; } } class Schedule : IComparable { int c; Zviera z; public Schedule(int cas, Zviera zviera) { c = cas; z = zviera; } public int CompareTo(object obj) { if (obj == null) return 1; Schedule other = obj as Schedule; if (c < other.c) return -1; if (c > other.c) return 1; if (z.mensinez(other.z)) return -1; if (other.z.mensinez(z)) return 1; return 0; } } class Program { static void Main(string[] args) { List> les = new List>(); for (int i = 0; i < 10; i++) { les.Add(new List()); } for (int i = 0; i < 10; i++) { les[0].Add(new Danek()); les[9].Add(new Lev()); } SortedSet kalendar = new SortedSet(); foreach (List krovi in les) { foreach(Zviera z in krovi) { kalendar.Add(new Schedule(0, z)); } } } } }