Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //{ Driver Code Starts
- //Initial Template for javascript
- 'use strict';
- process.stdin.resume();
- process.stdin.setEncoding('utf-8');
- let inputString = '';
- let currentLine = 0;
- process.stdin.on('data', inputStdin => {
- inputString += inputStdin;
- });
- process.stdin.on('end', _ => {
- inputString = inputString.trim().split('\n').map(string => {
- return string.trim();
- });
- main();
- });
- function readLine() {
- return inputString[currentLine++];
- }
- function main() {
- let t = parseInt(readLine());
- let i = 0;
- for(;i<t;i++)
- {
- let input_ar0 = readLine().split(' ').map(x=>parseInt(x));
- let N = input_ar0[0];
- let K = input_ar0[1];
- let arr = new Array(N);
- let input_ar1 = readLine().split(' ').map(x=>parseInt(x));
- for(let i=0;i<N;i++)
- arr[i] = input_ar1[i];
- let obj = new Solution();
- obj.reverseInGroups(arr, N, K);
- let S = '';
- for(let i=0;i<N;i++)
- {
- S+=arr[i];
- S+=' ';
- }
- console.log(S);
- }
- }
- // } Driver Code Ends
- //User function Template for javascript
- /**
- * @param {number[]} arr
- * @param {number} n
- * @param {number} k
- */
- class Solution {
- //Function to reverse every sub-array group of size k.
- reverseInGroups(arr, n, k){
- // code here
- let ck = Math.min(k, n), swaps = 0, endIndex=ck-1;
- for(let i = 0; i< n; i++){
- const swapIndex = endIndex-swaps;
- const cval = arr[i];
- arr[i] = arr[swapIndex];
- arr[swapIndex] = cval;
- swaps++;
- if(swaps >= ck/2){
- swaps = 0;
- i = endIndex;
- ck = Math.min(k, n - (endIndex + 1))
- endIndex = i + ck
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement