Exemple #1
0
    static void Main(String[] args)
    {
        int n = Convert.ToInt32(Console.ReadLine());
        int m = Convert.ToInt32(Console.ReadLine());

        int[][] grid = new int[n][];
        for (int grid_i = 0; grid_i < n; grid_i++)
        {
            string[] grid_temp = Console.ReadLine().Split(' ');
            grid[grid_i] = Array.ConvertAll(grid_temp, Int32.Parse);
        }
        RegionCounter counter = new RegionCounter(grid, n, m);

        Console.Write(counter.Analize().ToString());
    }
Exemple #2
0
            public static void Run(Input input, Output output)
            {
                byte numbersCount = Byte.Parse(input.ReadLine());
                var  numbers      = input.ReadLine().Split(' ').Select(str => UInt64.Parse(str)).ToArray();

                long regionsCount   = 0;
                var  counter        = new RegionCounter();
                int  maxCombination = (int)1 << numbers.Length;

                for (int currCombination = 0; currCombination < maxCombination; currCombination++)
                {
                    counter.Clear();
                    for (byte currBit = 0; currBit < numbers.Length; currBit++)
                    {
                        if ((currCombination & ((int)1 << currBit)) != 0)
                        {
                            counter.Add(numbers[currBit]);
                        }
                    }
                    regionsCount += counter.GetRegionsCount();
                }
                output.WriteLine(regionsCount.ToString());
            }