Header Ads Widget

Micro and Array Update

 Problem:-

Micro purchased an array A having N integer values. After playing it for a while, he got bored of it and decided to update value of its element. In one second he can increase value of each array element by 1. He wants each array element's value to become greater than or equal to K. Please help Micro to find out the minimum amount of time it will take, for him to do so.

Input:
First line consists of a single integer, T, denoting the number of test cases.
First line of each test case consists of two space separated integers denoting N and K.
Second line of each test case consists of N space separated integers denoting the array A.

Output:
For each test case, print the minimum time in which all array elements will become greater than or equal to K. Print a new line after each test case.

Constraints:
1T5
1N105
1A[i],K106

Sample Input
2
3 4
1 2 5
3 2
2 5 5
Sample Output
3
0
Time Limit: 1
Memory Limit: 256
Source Limit:
Explanation

For first test case,
After 1 second, array will be {2,3,6}
After 2 second, array will be {3,4,7}
After 3 second, array will be {4,5,8}

So it will take 3 second for all array elements to become greater than or equal to 4.

Code:-

#include<stdio.h>
int main()
{
  long int t,n,k,i;
  scanf("%ld",&t);
  for(i=0;i<t;i++)
  {
    scanf("%ld%ld",&n,&k);
    long int a,j,min=1000000;
    for(j=0;j<n;j++)
    {
       scanf("%ld",&a);
       if(min>a)
       min=a;
    }
    if(min<k)
     printf("%ld\n",k-min);
    else
     printf("0\n");
    
  }
  return 0;
}



Post a Comment

0 Comments