static void Main(string[] args) { ILineReader reader; if (args.Length > 0) { reader = new FileLineReader(args[0]); } else { reader = new ConsoleLineReader(); } var input = reader.ReadLine().Split(' '); var N = int.Parse(input[0]); var I = int.Parse(input[1]); var pic = new ParticipantsInCountries(); while (I > 0) { I--; input = reader.ReadLine().Split(' '); var p1 = int.Parse(input[0]); var p2 = int.Parse(input[1]); pic.Add(p1, p2); } pic.Normalize(); var total = pic.countries.Sum(p => p.members.Count); var singleGroups = N - total; ComboGenerator cg = new ComboGenerator(pic.countries.Count, 2); long sum = 0; var combo = cg.Next(); while (combo != null) { sum += pic.countries[(int)combo[1] - 1].Count * pic.countries[(int)combo[2] - 1].Count; combo = cg.Next(); } var singleCombo = (long)(FactByFact(singleGroups, singleGroups - 2) / Fact(2)); var comboIntoCountry = pic.countries.Sum(p => p.members.Count * singleGroups); sum += singleCombo + comboIntoCountry; Console.WriteLine(sum); }
static void Main(string[] args) { ComboGenerator cgn = new ComboGenerator(20, 1); var arr = cgn.Next(); while (arr != null) { PrintArray(arr); arr = cgn.Next(); } //CobinationGenerator c = new CobinationGenerator(); //c.GenerateCombo(9, 8); Console.ReadLine(); }