— Hey folks, how do you like this problem? — That’ll do it.
BThero is a powerful magician. He has got n piles of candies, the i-th pile initially contains ai candies. BThero can cast a copy-paste spell as follows:
He chooses two piles (i,j) such that 1≤i,j≤n and i≠j. All candies from pile i are copied into pile j. Formally, the operation aj:=aj+ai is performed. BThero can cast this spell any number of times he wants to — but unfortunately, if some pile contains strictly more than k candies, he loses his magic power. What is the maximum number of times BThero can cast the spell without losing his power?
Input The first line contains one integer T (1≤T≤500) — the number of test cases.
Each test case consists of two lines:
the first line contains two integers n and k (2≤n≤1000, 2≤k≤104); the second line contains n integers a1, a2, …, an (1≤ai≤k). It is guaranteed that the sum of n over all test cases does not exceed 1000, and the sum of k over all test cases does not exceed 104.
Output For each test case, print one integer — the maximum number of times BThero can cast the spell without losing his magic power.
Example Input 3 2 2 1 1 3 5 1 2 3 3 7 3 2 2 Output 1 5 4 Note In the first test case we get either a=[1,2] or a=[2,1] after casting the spell for the first time, and it is impossible to cast it again. 思路:sort排序后,从a[2]开始,在满足加上a[1]不大于K的情况下,数组每位都一次一次的加上a[1],加一次用魔法的次数就多一次。
#include<bits/stdc++.h> #include<iostream> #include<math.h> #include<memory.h> #include<algorithm> using namespace std; int main() { int t; cin>>t; int n,k; int a[1005]; while(t--) { cin>>n>>k; int f=1; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+1+n); //for(int i=1;i<=n;i++) // cout<<a[i]; for(int i=2;i<=n;i++) { while(a[i]+a[1]<=k) { f++; a[i]+=a[1]; } } cout<<f-1<<endl; } return 0; }