(HackerRank) Write a Modular C Programming code to solve Rotation Factor, If the array was not rotated then the array would have been sorted. Find ‘K’
Given an array which is rotated towards right by some factor ‘K’. If the array was not rotated then the array would have been sorted. Find ‘K’
Input Format
First Line contains ‘t’ number of test cases.
Next ‘t’ line conatins ‘N’ number of array elements followed by N array elements
Constraints
N>0 and N<=10^5
-10^5<=a[i]<=10^5
Output Format
For each test case output the rotation factor in new line.
Sample Input 0
-4
Sample Output 0
Invalid
Sample Input 1
2
5 4 5 1 2 3
6 17 25 29 6 8 10
Sample Output 1
2
3
Explanation 1
First Line is 2, which represents number of test cases.
The first number of second line is the number of array elements.
For 1st test case, the array is 4 5 1 2 3, If the array wouldn't had been rotated then the array would have been 1 2 3 4 5, we see that the array is rotated towards right circularly by factor 2.
Similarly for 2nd test case the array is rotated right by factor 3.
Refer : C Programming HackerRank all solutions for Loops | Arrays | strings
CODE:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int check_ascending(int arrray[],int n); int check_descending(int array[],int n); int main() { int test; scanf("%d",&test); if(test<0) { printf("Invalid\n");} while(test>0) { int k=0,n,i,temp; scanf("%d",&n); int array[n]; for(i=0;i<n;i++) { scanf("%d",&array[i]); } while(1) { if(check_ascending(array,n)==1) break; else if(check_descending(array,n)==1) break; for(i=0;i<n-1;i++) { temp=array[i]; array[i]=array[i+1]; array[i+1]=temp; } k++; } printf("%d\n",k); test--; } return 0; } int check_ascending(int array[],int n) { int i,status=1; for(i=0;i<n-1;i++) { if(array[i]>array[i+1]) { status=0; break; } } return status; } int check_descending(int array[],int n) { { int i,status=1; for(i=0;i<n-1;i++) { if(array[i]<array[i+1]) { status=0; break; } } return status; } }
OUTPUT
Congratulations, you passed the sample test case. Click the Submit Code button to run your code against all the test cases. Input (stdin) -4 Your Output (stdout) Invalid Expected Output Invalid
Please find some more codes of Loops, Condition Statements, 1D Arrays, 2D Arrays, Strings, Pointers, Data Structures, Files, Linked lists, MISC, Solved model question papers & Hacker Rank all solutions on the below page: