using System;

 

namespace ConsoleApplication3

{

    class Program

    {

 

        enum Kolor

        {

            White,

            Yellow = 6,

            Red,

            Green

        };

 

        

 

        static void Main(string[] args)

        {

            Kolor K = Kolor.Red;

            Console.WriteLine(K + "  " + (int) K);

            int[] A, C, D;

            A = new int[10];

            int[] B = new int[10];

            for (int i = 0; i < A.Length; i++)

            {

                A[i] = 10 + i;

            }

            C = A;

            C[5] = 100;

            // D = new int[A.Length];

            D = (int[])A.Clone();

 

            D[6] = 200;

            Console.WriteLine("A[i]  C[i]  D[i]");

            for (int i = 0; i < A.Length; i++)

            {

                Console.WriteLine(A[i] + "   " + C[i] + "   " + D[i]);

            }

            int[] E = { 2, 4, 5 };

 

            int[,] R = new int[3, 5];

            Console.WriteLine(R.Length + " " + R.GetLength(0) + " " + R.GetLength(1));

 

            int[,,] R3 = new int[3, 5, 4];

            Console.WriteLine(R3.Length + " " + R3.GetLength(0) + " "

                            + R3.GetLength(1) + " " + R3.GetLength(2));

 

 

            Console.WriteLine();

            //jagged

            int[][] J = new int[3][];

            J[0] = new int[5];

            J[1] = new int[3];

            J[2] = new int[4];

 

            for (int i = 0; i < J.Length; i++)

            {

                for (int k = 0; k < J[i].Length; k++)

                {

                    J[i][k] = i + k;

                    Console.Write(J[i][k] + "    ");

                }

                Console.WriteLine();

            }

 

            int[][] K2 = (int[][])J.Clone();

 

            J[0][0] = 10000;

 

            for (int i = 0; i < J.Length; i++)

            {

                for (int k = 0; k < J[i].Length; k++)

                {

 

                    Console.Write(K2[i][k] + "    ");

                }

                Console.WriteLine();

            }

 

            int d = 13_800;

 

            int[,] X = new int[d, d];

            int[,] Y = new int[d, d];

 

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();

            sw.Start();

            for (int i = 0; i < d; i++)

            {

                for (int k = 0; k < d; k++)

                {

                    X[i, k] = i;

                    Y[i, k] = X[i, k];

                }

            }

            sw.Stop();

            Console.WriteLine(Y[d - 1, d - 1] + "   " + sw.Elapsed);

 

 

 

            int[][] X2 = new int[d][];

            int[][] Y2 = new int[d][];

            for (int i = 0; i < d; i++)

            {

                X2[i] = new int[d];

                Y2[i] = new int[d];

            }

 

            sw.Reset();

            sw.Start();

            for (int i = 0; i < d; i++)

            {

                for (int k = 0; k < d; k++)

                {

                    X2[i][k] = i;

                    Y2[i][k] = X2[i][k];

                }

            }

            sw.Stop();

            Console.WriteLine(Y[d - 1, d - 1] + "   " + sw.Elapsed);

 

            int[][][][,,,,][][] T;

 

 

            int a = 2;

 

            switch (a)

            {

                case 0:

                    Console.WriteLine("0");

                    break;

                case 1:

                    Console.WriteLine("1");

                    break;

                default:

                    Console.WriteLine("2");

                    break;

            }

 

 

            checked

            {

                try

                {

                    int b = 20000000;

                    int c = b * b;

                    A[12] = 5;

                }

                catch (OverflowException e1)

                {

                    Console.WriteLine(e1.Message + " 1");

                }

                catch (IndexOutOfRangeException e1)

                {

                    Console.WriteLine(e1.Message + " 2");

                }

                catch (OutOfMemoryException e1)

                {

                    Console.WriteLine(e1.Message + " 3");

                }

                catch (Exception e1)

                {

                    Console.WriteLine(e1.Message + " 4");

                }

            }

 

            

 

            Console.WriteLine(14<<1);

            // 16 8 4 2 1

            //    1 1 1 0

            //  1 1 1 0

            Console.WriteLine(14 >> 2);

            // 16 8 4 2 1

            //    1 1 1 0

            //        1 1 1 0

            Console.WriteLine(14 & 9);

            // 16 8 4 2 1

            //    1 1 1 0    14

            //    1 0 0 1     9

            //    1 0 0 0     8

            Console.WriteLine(14 | 9);

            // 16 8 4 2 1

            //    1 1 1 0    14

            //    1 0 0 1     9

            //    1 1 1 1     19

            Console.WriteLine(14 ^ 9);

            // 16 8 4 2 1

            //    1 1 1 0    14

            //    1 0 0 1     9

            //      1 1 1     7

 

            throw new Exception("something went wrong");

 

            Console.WriteLine("c");

            Console.ReadLine();

        }

    }

}