示例#1
0
        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);
        }
示例#2
0
        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();
        }