Advertisement
OpataJoshua

Untitled

Jan 14th, 2023
818
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //{ Driver Code Starts
  2. //Initial Template for javascript
  3. 'use strict';
  4.  
  5. process.stdin.resume();
  6. process.stdin.setEncoding('utf-8');
  7.  
  8. let inputString = '';
  9. let currentLine = 0;
  10.  
  11. process.stdin.on('data', inputStdin => {
  12.     inputString += inputStdin;
  13. });
  14.  
  15. process.stdin.on('end', _ => {
  16.     inputString = inputString.trim().split('\n').map(string => {
  17.         return string.trim();
  18.     });
  19.    
  20.     main();    
  21. });
  22.  
  23. function readLine() {
  24.     return inputString[currentLine++];
  25. }
  26.  
  27. function main() {
  28.     let t = parseInt(readLine());
  29.     let i = 0;
  30.     for(;i<t;i++)
  31.     {
  32.         let input_ar0 = readLine().split(' ').map(x=>parseInt(x));
  33.         let N = input_ar0[0];
  34.         let K = input_ar0[1];
  35.         let arr = new Array(N);
  36.         let input_ar1 = readLine().split(' ').map(x=>parseInt(x));
  37.         for(let i=0;i<N;i++)
  38.             arr[i] = input_ar1[i];
  39.         let obj = new Solution();
  40.         obj.reverseInGroups(arr, N, K);
  41.         let S = '';
  42.         for(let i=0;i<N;i++)
  43.         {
  44.             S+=arr[i];
  45.             S+=' ';
  46.         }
  47.         console.log(S);
  48.     }
  49. }
  50. // } Driver Code Ends
  51.  
  52.  
  53. //User function Template for javascript
  54.  
  55. /**
  56.  * @param {number[]} arr
  57.  * @param {number} n
  58.  * @param {number} k
  59.  */
  60.  
  61. class Solution {
  62.     //Function to reverse every sub-array group of size k.
  63.     reverseInGroups(arr, n, k){
  64.         // code here
  65.         let ck = Math.min(k, n), swaps = 0, endIndex=ck-1;
  66.         for(let i = 0; i< n; i++){
  67.             const swapIndex = endIndex-swaps;
  68.             const cval = arr[i];
  69.             arr[i] = arr[swapIndex];
  70.             arr[swapIndex] = cval;
  71.             swaps++;
  72.            
  73.             if(swaps >= ck/2){
  74.                 swaps = 0;
  75.                 i = endIndex;
  76.                 ck = Math.min(k, n - (endIndex + 1))
  77.                 endIndex = i + ck
  78.             }
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement