Example #1
0
        static void Main(string[] args)
        {
            Dazcode dazcode = new Dazcode();

            int[] inputArray = Array.ConvertAll(dazcode.getNextString().Split(' '), int.Parse);

            int arrayCount    = inputArray[0];
            int numberShift   = inputArray[1];
            int numberQueries = inputArray[2];

            int[] rotationArray = Array.ConvertAll(dazcode.getNextString().Split(' '), int.Parse);
            int   theArraySize  = rotationArray.Length;

            int[] rotatedArray = new int[theArraySize];

            if (numberShift > theArraySize)
            {
                numberShift = numberShift % theArraySize;
            }

            Array.Copy(rotationArray, 0, rotatedArray, numberShift, theArraySize - numberShift);
            Array.Copy(rotationArray, theArraySize - numberShift, rotatedArray, 0, numberShift);

            for (int i = 0; i < numberQueries; i++)
            {
                int currentIndex = Convert.ToInt32(dazcode.getNextString());
                Console.WriteLine(rotatedArray[currentIndex]);
            }

            dazcode.pauseIfDebug();
        }
Example #2
0
        static void Main(string[] args)
        {
            Dazcode dazcode = new Dazcode();


            int[] input1     = Array.ConvertAll(dazcode.getNextString().Split(' '), int.Parse);
            int   arraySize  = input1[0];
            int   leftRotate = input1[1];

            int[] a            = Array.ConvertAll(dazcode.getNextString().Split(' '), int.Parse);
            int[] rotatedArray = new int[a.Length];


            for (int i = 0; i < arraySize; i++)
            {
                int swapIndex = GetSwapLocation(i, arraySize, leftRotate);
                rotatedArray[swapIndex] = a[i];
            }


            Console.WriteLine(String.Join(" ", rotatedArray));
            dazcode.pauseIfDebug();
        }